什么是\ xHEX字符,是否有表格?

时间:2013-07-22 08:36:29

标签: java python c string generics

读取文本文件时,我读取这些字符,打印到控制台时输出空白或 :

['\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

3 个答案:

答案 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