2010-05-10 62 views
1

我想知道如何在Java文件接收字符串...串收到與UTF8格式,但在Java的問題

該文件有不同語言的字母...

我用UTF- 8格式......這個可以收到一些信件的語言正確...

但拉丁字母着正確顯示...

那麼,如何可以接收所有語言的信件......

或任何其他形式對收到的所有信件的語言......

代碼

URL url = new URL("http://google.cm"); 

URLConnection urlc = url.openConnection(); 
BufferedReader buffer = new BufferedReader(new InputStreamReader(urlc.getInputStream(), "UTF-8")); 
StringBuilder builder = new StringBuilder(); 
int byteRead; 
while ((byteRead = buffer.read()) != -1) 
{ 
builder.append((char) byteRead); 
} 

buffer.close(); 

text=builder.toString(); 

如果我顯示「文本」的字母着正確顯示

感謝,並提前

+0

您使用的代碼是什麼?您如何知道拉丁字母沒有正確顯示? – 2010-05-10 04:37:14

+0

URL url =新的URL(「http://google.cm」); URLConnection urlc = url.openConnection(); (新的InputStreamReader(urlc.getInputStream(),「UTF-8」));}};}};}}};}}}} StringBuilder builder = new StringBuilder(); \t int byteRead; ((byteRead = buffer.read())!= -1) \t builder.append((char)byteRead); } buffer.close(); \t text = builder.toString(); 如果我顯示「文本」字母不能正確顯示 – 2010-05-10 04:54:40

回答

2

在Java中讀取UTF-8文件相當簡單:

Reader r = new InputStreamReader(new FileInputStream(filename), "UTF-8"); 

如果這不起作用,則問題在於別處。

編輯:根據iconv,谷歌喀麥隆正在提供無效的UTF-8。它似乎實際上是iso-8859-1。

編輯2:其實我錯了。如果用戶代理包含「Mozilla/5.0」(或更高版本),但在(某些)其他情況下有效的iso-8859-1,則它將服務(並聲明)有效的UTF-8。顯然,最好的選擇是在解碼之前使用getContentType進行檢查。