设为首页 - 加入收藏 - 网站地图 - RSS订阅 村姑网-www.cunguer.com
当前位置:首页 > 软件开发 > 易语言 > 正文

txt文本文件编码windows(CR LF) UTF-8 INS转换Unix(LF) UTF-8 INS换行符易语言实现的方法

时间:2020-03-23 01:44:42 来源:村姑网 作者:喜欢安静 阅读: 0 次
导读:前2天做帮用户用易语言制作了一个按行数把1个txt文本分割为多个txt文本的程序,测试没有问题,但是用户把分割后的文本用到安卓系统中,就出现了问题。经排查,是因为txt文本文件编码发生变化导致的问题,也就是windows电脑中txt的编码是windows(CR LF) UTF-8 INS转换...

前2天做帮用户用易语言制作了一个按行数把1个txt文本分割为多个txt文本的程序,测试没有问题,但是用户把分割后的文本用到安卓系统中,就出现了问题。经排查,是因为txt文本文件编码发生变化导致的问题,也就是windows电脑中txt的编码是windows(CR LF)  UTF-8  INS转换后是没有变化的,这本来没错,但是用户把转换后的文本用到安卓系统中让安卓程序对文本进行读写就会出现一些小问题。大家都知道,安卓系统是基于linux系统的,所以txt文件在安卓系统中进行了写操作的话,txt文本的编码就会变成Unix(LF) UTF-8 INS。这样就导致文本会莫名奇妙的多出2行,后来经过查询一些资料发现是因为windows系统中的换行符是回车(CR)+换行(LF),而linux系统中的换行符是:换行(LF),拓展(Mac系统里面换行是回车,也就是CR),关于这个问题手动编码转换的处理方法,请看【按键精灵手机助手使用紫猫插件zm.FileWriteLine和zm.FileDeleteLine命令实现utf-8文本行循环后,总行数增加的问题】这篇文章,本文要讨论的是怎么用易语言实现分割文本后,让文本的编码直接从windows(CR LF)  UTF-8  INS转换到Unix(LF) UTF-8 INS编码

经过前面的问题分析,我们已经知道导致问题的原因在于windwos换行符和安卓系统(linux)中的换行符不同,那么我们只需在生成分割后的文本时,对每一行的换行符进行修改就可以了。

易语言中,常量:#换行符,是由字符(13)+字符(10)组成的,即:回车+换行。原本代码中,我把待分割的文本按行存放到数组中代码大体如下:

局_分割 = 分割文本 (文本_账号总, #换行符, )
计次循环首 (取数组成员数 (局_分割), i)
   局_文本 = 局_文本 + 局_分割 [i] + #换行符
   '中间有判断是否达到用户设定的行数,达到的话,就跳出循环,保存文件
计次循环尾 ()
写到文件 (ju_子文件名, 到字节集 (局_文本))

我们只需将上面的代码做少量的修改即可,修改如下:

局_分割 = 分割文本 (文本_账号总, #换行符, )
计次循环首 (取数组成员数 (局_分割), i)
   局_文本 = 局_文本 + 到文本 (到字节集 (局_分割 [i]) + 到字节集 (字符 (10)))
   '中间有判断是否达到用户设定的行数,达到的话,就跳出循环,保存文件
计次循环尾 ()
写到文件 (ju_子文件名, 到字节集 (局_文本))

这样,我们就完成了txt文本文件从编码windows(CR LF)  UTF-8  INS转换到Unix(LF) UTF-8 INS的任务了。

《txt文本文件编码windows(CR LF) UTF-8 INS转换Unix(LF) UTF-8 INS换行符易语言实现的方法》地址:www.cunguer.com/article/362.html,本文来自村姑网,您身边的IT专家 www.cunguer.com,转载请注明出处,您的支持是我们创作的源泉~!