我想知道如何从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 :(得分:2)
在Java中读取UTF-8文件相当简单:
Reader r = new InputStreamReader(new FileInputStream(filename), "UTF-8");
如果这不起作用,则问题出在其他地方。
编辑:根据iconv,Google喀麦隆正在提供无效的UTF-8。它似乎实际上是iso-8859-1。
EDIT2:实际上,我错了。如果用户代理包含“Mozilla / 5.0”(或更高版本),但在(某些)其他情况下有效的iso-8859-1,它将服务(并声明)有效的UTF-8。显然,最好的办法是在解码前使用getContentType进行检查。