2013-07-22 11 views
-1

当读取一个文本,我读到这些文字,在打印时安慰它输出空白或:什么是 xHEX字符,并为他们提供了一张桌子?

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

看一看[编码](http://www.cs.tut.fi/~jkorpela/chars/index.html) – rene

+0

有你甚至试图自己做一些研究?一个简单的谷歌任何这些字符会告诉你他们是'unicode',然后它只是一个搜索“unicode转换图表” –

+0

当我尝试打印它为'unicode',它给出''utf8'编解码器无法解码位置0处的字节0x80 ... ... – alvas

回答

2

这里是一个链接到所有Unicode字符:

http://en.wikipedia.org/wiki/List_of_Unicode_characters

另外,如果你使用的是Eclipse,请确保您的项目“文本文件编码”设置为UTF-8。

项目 - >属性 - >资源 - >文本文件编码。

我有类似的问题,西里尔字母:)

1

我可以建议你的文本文件,是不是一个真正的“文本文件”。
前两个字节构成unicode'À'字符。其他,我想,是不可打印的字符。看起来你的文件有一个原始的字节序列,不一定是字符。

你有一个表here

1

请注意,java以unicode格式(\ u ...)对字符进行编码。可以在控制台上显示数字'80',但不能显示字符'\ x80'。

有关列表,请参阅ASCII字符表,like this one

+0

Unicode不是一种编码。 – Matthias

相关问题