2010-05-10 52 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进行检查。