java - Apache Http 客户端编码 UTF-8 不起作用

标签 java servlets encoding utf-8 apache-httpclient-4.x

我有以下情况:

JSP -> Servlet -> ServiceAPI -> 服务 Servlet

我在 JSP 页面中输入了一些西里尔符号,这是场景的开始。在下一步(Servlet)中,我以 UTF-8 格式从 JSP 读取数据。所以对于,很好。一切都好。

然后我将数据传递给 ServiceAPI,ServiceAPI 将其发送给 Service Servlet。问题来了。 Service Servlet 中的数据被读取为“??????”。所以,我猜问题出在服务 API 上,它没有正确发送数据。 ServiceAPI 实现使用 Apache Http Client 将数据发送到 Service Servlet。

正如我在 Apache Http Client 文档 (http://hc.apache.org/httpclient-3.x/preference-api.html#HTTP_method_parameters) 中读到的那样,有一种方法可以在请求中设置字符编码。但我无法应用此方法,因为出现以下错误:“访问限制:由于所需库的限制,无法访问 HttpParams 类型中的方法 setParameter(String, Object) ...”。所以我有点卡住了。您知道问题是否真的出在 Apache Http Client 中吗?我该如何解决它。

提前致谢。

最佳答案

在网络应用中正确实现字符编码包含 4 个步骤

1.首先您必须配置您的网络服务器。

2.然后您必须强制您的网络应用程序对所有请求/响应使用 UTF-8 编码。

3.第三你必须使用JSP页面编码。

4.最后你必须使用 HMTL-meta 标签。

就您的情况而言,问题很可能出在第 2 步(IMO)

这是适合您的完美文章 How to get UTF-8 working in Java webapps?描述了如何广泛地执行所有这些操作

关于java - Apache Http 客户端编码 UTF-8 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12259119/

相关文章:

java - Spark javaRDD 输出到数据库

java - 通过超链接隐藏值

java - servlet的web.xml中保留字?

java - 二进制到Java中的文本

javascript - 在 Facebook 应用程序中自动完成的替代方法

encoding - 如何在汇编器中实现相对 JMP (x86)?

java - 设置可执行 Jar 文件的图标

java - 如何将对象添加到 JSON

java - Mongo打开了太多的连接

java - 如何实现jsp页面的 session 跟踪