java - servlet 和 apache HttpClient 的 UTF-8 编码问题

标签 java apache servlets utf-8 httpclient

我有一个 servlet,它发送一个 utf-8 编码的字符串。我还有一个用 apache httpcomponents 库编写的客户端。

我的问题是读取 utf-8 格式的响应。某些特殊字符(如 ñ 或 ç)无法正确读取。如果我用发送请求的html页面测试服务器,字符串是正确的,并且编码是UTF-8无BOM。

一些片段: Servlet

response.setContentType ("application/json; charset=UTF-8");
PrintWriter out = response.getWriter ();
out.write (string);

客户端

entity = response.getEntity ();
entity.getContentEncoding (); //returns null
resultado = EntityUtils.toString (entity, HTTP.UTF_8); //Some characters are wrong

有人遇到同样的问题吗?

已解决: 抱歉,客户端和服务器工作正常。我正在编写一个 Android 应用程序,似乎 logcat(我打印消息的地方)不支持 utf-8 编码。

最佳答案

你试过吗

response.setCharacterEncoding("utf-8");

而不是通过setContentType设置编码?根据文档,它不应该产生任何影响,但谁知道......

此外,请确保在设置字符编码之前没有在代码中的任何位置调用 response.getWriter(),因为后者在这种情况下不会产生任何效果。

关于java - servlet 和 apache HttpClient 的 UTF-8 编码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4444796/

相关文章:

java - 为什么java不允许继承final类?

php - 尝试在 dokuwiki 上使用 Apache 重写时出现 404 错误

java - ConcurrentHashMap 在我的 Java Web 应用程序中陷入无限循环?

java - 在空接口(interface)上“删除中间人”IntelliJ 重构

java - Android 蓝牙第一次连接失败

java - CentOS 6.x 上的 jsvc 1.0.15 安装

apache mod_proxy ProxyPassReverse Location header

javascript - 编写一个与 JMS (ActiveMQ) 对话的 Servlet 和 OnMessage 更新站点

java - 一个普通的 servlet 可以被配置为一个 seam 组件吗?

java - 检查 MyRectangle2D.java 类中矩形是否重叠