2013-07-22 12 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

相關問題