文本乱码,结果是十六进制数字,编码,解码问题 | 您所在的位置:网站首页 › 十六进制密码转换 › 文本乱码,结果是十六进制数字,编码,解码问题 |
我在文本聚类时,将选好的文本词写入到TXT文本时发生了乱码的问题。具体下面这种情况: 就是将本本字符写到txt文本,txt文本是默认的ANSI,查了很多资料都说是编码格式的问题。 问题说明:文中的是十六进制,而且是bytes类型。 字符串的类型只有两种(str,bytes)。编码的方式有utf-8,GBK等等。利用encode(编码方式)将str型字符串变成bytes型字符串。decode(编码方式)就反过来。 下面看我的代码: result = open(docPath,'a',encoding = 'utf-8') for j in range(len(word)): #print(type(word[j])) result.write(str(word[j].encode('utf-8') + b' ')) result.write('\r\n')其中word[j]的内容是这样的 '一周', '一场', '一堆', '一种', '一秒', '一路', '万事开头难', '三元组', 典型的文本字符串。(word[j].encode('utf-8') + b' ')就是bytes型字符,没有转成str型,导致写入进去的时候就变成上图的结果(我也不知道为啥没转成) 然后我就改了循环里的代码 for ci in (word): result.write(ci + ' ') result.write('\r\n')结果txt文件中没有十六进制了,但是出现乱码的文字 想到txt文件默认的编码是ANSI模式,但是我open时的写文件方式是“utf-8”,显然解码与编码方式冲突,所以我就把encoding的方式去掉,让他默认 result = open(docPath, 'a') for ci in (word): result.write(ci + ' ') result.write('\r\n')文本结果如下,问题就解决了: 总结哈,分析原理,根据原理找自己代码里的问题,真的得一步一步试试。 |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |