0

我正在使用 jQuery post() 发送 AJAX 请求并进行序列化。那使用UTF-8。例如,当 'ś' 是名称输入值时,JavaScript 显示name=%C5%9B. 我尝试设置表单编码但没有成功。

<form id="dyn_form" action="dyn_ajax.xml" style="display:none;" accept-charset="UTF-8"> 

同样的情况也发生在encodeURI(document.getElementById("name_id").value). 我在 Tomcat 5.5 上使用 Servlet。

4

3 回答 3

1

我总是很难说服请求对象正确解码 URIEncoded 字符串。

我终于做了以下黑客攻击。

    try {
        String pvalue = req.getParameter(name);
        if (null != pvalue) {
            byte[] pbytes = pvalue.getBytes("ISO-8859-1");
            res = new String(pbytes, "UTF-8");
        }
    } catch (java.io.UnsupportedEncodingException e) {
        // This should never happen as ISO latin 1 and UTF-8 are always included in jvms.
    }

我不是很喜欢这个,我停止开发servlet已经有一段时间了,但它已经在tomcat 5.5上,所以值得一试。

于 2012-07-18T14:30:47.990 回答
1

我多次遇到这种问题。
验证您的页面是否以 UTF-8 编码保存。

于 2012-07-11T10:29:52.063 回答
1

如果它真的是 UTF-8,请尝试decodeURIComponent.

于 2012-07-11T10:36:40.763 回答