帮助以不同语言显示java字符
我正在向一个web服务发送请求,收到的响应可以是任何语言:英语、法语、阿拉伯语、日语等 但是,我无法正确显示不同的语言。例如,我收到:帮助以不同语言显示java字符,java,http,internationalization,Java,Http,Internationalization,我正在向一个web服务发送请求,收到的响应可以是任何语言:英语、法语、阿拉伯语、日语等 但是,我无法正确显示不同的语言。例如,我收到: translation: ä½ å¥½ 而不是: translation: 你好 我猜我在HTTP请求/响应中没有正确编码。有人能告诉我我可能做错了什么吗?下面是我接收HTTP响应的代码: baos = new ByteArrayOutputStream(); InputStream responseData = conne
translation: ä½ å¥½
而不是:
translation: 你好
我猜我在HTTP请求/响应中没有正确编码。有人能告诉我我可能做错了什么吗?下面是我接收HTTP响应的代码:
baos = new ByteArrayOutputStream();
InputStream responseData = connection.openInputStream();
byte[] buffer = new byte[20000];
int bytesRead = 0;
while ((bytesRead = responseData.read(buffer)) > 0) {
baos.write(buffer, 0, bytesRead);
}
System.out.println(new String(baos.toByteArray()));
谢谢 最后打印时,请尝试
System.out.println(新字符串(baos.toByteArray(),Charset.forName(“UTF-8”))代码>
将使用平台的默认字符集解释字节[]。发件人:
通过使用平台的默认字符集对指定的字节数组进行解码来构造新字符串
这些字节需要由与服务器发送给您的字符集兼容的解码器进行解释。这通常是在HTTP内容类型
标题中指定的。我认为您应该使用ByteArrayOutputStream的方法toString(String charsetName)
大概是这样的:
System.out.println(baos.toString("UTF-8"));
当然,您必须在服务器和客户端上使用相同的编码
我希望这会有帮助。
System.out.println(new String(baos.toByteArray()))
您需要为新字符串(字节字节[],字符集字符集)
提供正确的字符集
您需要知道要使用哪个字符集(即,它应该与响应一起发送)。
默认值为UTF-8,但不包括中文、日语、阿拉伯语、希伯来语等。我认为您需要使用InputStreamReader和OutputStreamWriter。这些类允许您指定编码。
例如:
Writer out = new BufferedWriter(new OutputStreamWriter(System.out, "UTF-8"));
out.write(something);
请参阅清单4,UTF-8确实涵盖了所有这些语言,但它不是默认语言。对不起。
Writer out = new BufferedWriter(new OutputStreamWriter(System.out, "UTF-8"));
out.write(something);