请教关于TXT文件编码转换的问题
我发现MGC下KWrite grep等处理和产生的文件的编码和Windows下软件产生的文件有差异MGC下UTF-8等编码条件下,英文字母是单字节的,只有汉字是双字节的
而Windows的TXT文件,无论是英文还是汉字都是双字节的。
而notepad的unicode和utf-8的文件用16进制编辑器打开发现其实是一样的。
有几个windows下的文件(比较大)想用MGC下工具处理,不能不转换编码(转换成grep sed等能处理的编码)。
但iconv转不了(也许我用法不对)
不知道还有没有其他办法?
附件是一些截图
谢谢!
想找比较现成可靠的工具直接转,自己用C编很可能会有些问题。
[ 本帖最后由 lanzinc 于 2010-9-6 18:18 编辑 ] windows 的txt 在文件头部有编码识别标志。linux 貌似没这个习惯,不过好像有的编辑器可以识别这个标志。 kwrite可以直接转编码,工具栏中有。 那几个windows下的文件应该是UTF-16的
MGC的grep把他当成ASCII的字符流了,00当成一个字符。
或当成二进制文件了
现在不在作业的那台机器上,
现在有两个方案,我到时候试试
1。用工具在windows平台上将unicode转成所说的ANSI文件,再移到MGC下
2。文件在MGC下,locale不修改,还是用GB的,然后
iconv -f utf-16le -t GBK thefile -o output
看来又被Windows给骗了,google了一下,确实应该是UTF-16的 还有记事本保存的utf8编码文件,会在头上加上EF BB BF,linux下处理可能会有麻烦的。 madedit,台湾出的编辑器,我一直拿它在Linux下转文本。
页:
[1]