【易语言乱码问题】
本帖最后由 书香 于 2024-2-10 04:22 编辑当我们读取某个文件时,会出现乱码情况,我们首先先创建一个txt文本,在里面写上“你好”,然后另存为,如图所示:
在学习之前,你需要先阅读知识点:008:【UTF-8和GBK】
ANSI编码相当于gbk
易语言读取代码:
.版本 2
.支持库 shell
.支持库 spec
.子程序 _按钮1_被单击
.局部变量 数据, 字节集
.局部变量 文本内容, 文本型
数据 = 读入文件 (取特定目录 (3) + “123.txt”)
调试输出 (数据)
文本内容 = 到文本 (数据)
调试输出 (文本内容)
当我们存储为ANSI编码时,T调试结果过为:
* 字节集:4{196,227,186,195}
* “你好”
当我们存储为utf8编码时,T调试结果过为:
* 字节集:6{228,189,160,229,165,189}
* “浣犲ソ”
看上去是乱码,这是因为易语言字节集到文本默认使用的是gbk格式,所以读取本地文件123.txt时,会将上面的{228,189,160,229,165,189}默认为3个字符,所以乱码的本质就是解码出错(本来3个一组结果2个1组)
重点,我们可以使用如下写法:
.版本 2
.支持库 shell
.支持库 spec
.子程序 _按钮1_被单击
.局部变量 数据, 字节集
.局部变量 文本内容, 文本型
数据 = 读入文件 (取特定目录 (3) + “123.txt”)
调试输出 (数据)
文本内容 = 到文本 (数据)
文本内容 = 编码_utf8到gb2312 (文本内容)
调试输出 (文本内容)
调试结果:
* 字节集:6{228,189,160,229,165,189}
* “你好”
重点提示:
①:编码_utf8到gb2312来自于精易模块,听不懂的话说明你前面的课程没有认真看 017:【支持库和模块】
②:gb2312相当于GBK编码
(点击返回课程目录:https://www.52hb.com/thread-58658-1-1.html)
页:
[1]