我这里有一个包含一些文本的文件,我想编辑它们。但是字符之间有一个十进制值00。如果我删除它,文件中会出现错误,程序中不会出现任何内容!但是如果我编辑保持字母之间的 00 值,它就可以工作。有一个“隐藏”这些值的程序吗?通过这种模式,我很难在一个 13 MB 的文件中一个一个地编辑这么多的字母!打印出来:http:
//img211.imageshack.us/img211/2286/fsfsz.png
我能做什么?提前谢谢大家!
问问题
11846 次
2 回答
2
您的文件看起来像一个UTF-16
文本文件,这意味着每个字符都以 16 位而不是 8 位编码。如果您尝试将此文件编辑为标准文本文件,则会null
在每个字母之间获得字符。
您可以使用libiconv
转换文件格式,也可以编写自己的转换器。
使用iconv
:
iconv -f UTF-16 -t UTF-8 yourFile.txt > fileToEdit.txt
iconv -f UTF-8 -t UTF-16 editedFile.txt > programFile.txt
如果您使用的是 Windows,则可以使用libiconv
.
于 2013-04-30T14:01:59.477 回答
0
该文件以 Unicode 编码。UTF-16,很可能。如果您在体面的文本编辑器(例如 Notepad++)中打开它,它会自动检测到这一点并允许您更改编码。但是,“程序”(无论是什么)可能想要使用 UTF-16 编码的文件。目前尚不清楚您为什么要尝试更改它,但答案可能是保留 00 年代。
于 2013-04-30T14:01:50.140 回答