读取文本文件时,我读取这些字符,打印到控制台时输出空白或 :
['\x80', '\xc3', '\x94', '\x99', '\x98','\x9d', '\x9c', '\xa9', '\xa6', '\xe2']
这些\ xHEX字符是什么?是否有表格的链接来查找这些字符?
解决:
它不是ascii
文本文件,它是一个unicode utf8
文件。这就是我无法纠正角色的原因。
对于Java:
import java.io.*
File infile = new File('\home\foo\bar.txt');
BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(infile), "UTF8"));
while ((str = in.readLine()) != null) {
System.out.println(str);
}
如果system.out.println
抱怨,请尝试:
PrintStream out = new PrintStream(System.out, true, "UTF-8");
out.println(str);
对于Python,只需:
import codecs
infile = '\home\foo\bar.txt'
reader = codecs.open(infile,'r','urf8')
for l in reader:
print ln
答案 0 :(得分:2)
以下是所有unicode字符的链接:
http://en.wikipedia.org/wiki/List_of_Unicode_characters
此外,如果您使用的是Eclipse,请确保您的项目“Text File Encoding”设置为UTF-8。
项目 - >属性 - >资源 - >文本文件编码。
我有与西里尔字符类似的问题:)
答案 1 :(得分:1)
我可能会建议您的文本文件不是“文本文件”。
前两个字节组成unicode“À”字符。其他,我猜,是不可打印的字符。您的文件似乎有一个原始的字节序列,不必是字符。
你有一张桌子here。
答案 2 :(得分:1)
请注意,java以unicode格式(\ u ...)对字符进行编码。可以向控制台显示数字'80',但不能显示其角色的'\ x80'。
有关列表,请参阅ascii字符列表,like this one