我有一个 servlet,它接受 HTML 内容作为请求参数的一部分。HTML 是本地化的,可能是法语、西班牙语等...内容。我还使用 apache HTTP 客户端向该 servlet 发出请求以进行测试,该 servlet 具有以下标头定义:
HttpClient client = new HttpClient();
PostMethod method = new PostMethod("<URL>");
String html = FileUtils.readFileToString(inputHTMLFile, "UTF-8");
method.addParameter("html", html);
method.addRequestHeader("Accept", "*/*");
method.setRequestHeader("accept-charset", "UTF-8");
读取的任何 HTML 都具有 utf-8 字符编码,示例文本:
Télécharger un fichier
但是,当我从文本变为的请求参数中获取 html 时T?l?charger un fichier
我浏览了一些链接,例如http://www.oracle.com/technetwork/articles/javase/httpcharset-142283.html,其中讨论了字符集以及浏览器通常如何编码特殊字符。如果我要使用 UTF-8 对 html 进行 URLEncode,然后在 servlet 中使用相同的字符集对其进行解码,我会得到预期的 HTML。
这是我唯一能做的来保存字符集吗?我错过了什么吗?
谢谢。