"dns-²âÊÔ×"这是一个 GBK 格式乱码,但是我用读文件的方式读出来之后转换不出来。代码如下 怎么解决,求大神指点
先判断终端显示用的是 gbk 还是 utf-8,一般 windows 的 cmd 是 gbk 的。再判断文件的内容是 gbk 还是 utf8,打印输出时,转换成终端显示的编码就 OK。
不是显示问题,用 iconv 会转换会报错,无法识别序列,是不是这个乱码有问题,我转换正常的 GBK 都是可以转化的
你确定这是一个正常的 gbk 字符么?用编辑器以 gbk 编码打开 aa.log 这个文件看看呢
试试开档时设定编码 这样读档问题较小 如果要算 bytesize "string".bytesize
File.open('aa.log',encoding: 'GBK').each {|line| puts line,line.enocde('utf-8') }
File.foreach('aa.log',encoding: 'GBK') {|line| puts line}
你用 "ASCII-8BIT" 打开文件,把包含中文的前 20 个字节发上来看看。 line.force_encoding("ASCII-8BIT") 也行。
额额 搞定了,感谢各位大神,原文件出了一点错误,一个#出现了乱码导致解不出来。