通过ajax发送阿拉伯字符 - java

时间:2014-02-12 08:57:26

标签: java html ajax character-encoding

我正在为我的项目使用java。

我有一个包含许多文本框的页面。

当用户输入阿拉伯字符串并按下保存按钮时,字符串将被销毁

例如:

  • 输入:السلام
  • 按钮后:%645D5 $ 64%64f&%DF

我使用此代码在jsp页面上使用UTF-8:

<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" %>

但它不起作用。

这是我的ajax代码:

var name = document.getElementById('LineTitle').value ;
var category = document.getElementById("LineCategory").value;
var lineDirection = document.getElementById("LineDir").value;
markerLayer.clearMarkers();
$.ajax({
    data: '{"feature": ' + str + ', "name": "' + name + '", "category": "' + category + '", "LineDirection": "' + lineDirection + '"}',
    type: "POST",
    url: "../SaveLine",


     beforeSend: function(x) {
                    if (x && x.overrideMimeType) {
                        x.overrideMimeType("application/json;charset=UTF-8");
                    }
                },

2 个答案:

答案 0 :(得分:0)

我遇到了一些其他数据的类似问题。我通过使用encodeURI()来封装我从javascript发送的数据。 您可以使用适用于您的encodeURI()或encodeURIComponent()。 确实是否有效!

答案 1 :(得分:0)

如果您正在使用Spring MVC,请将此添加到您的web.xml

<filter>
    <filter-name>charsetFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
        <param-name>forceEncoding</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>charsetFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

如果不是,请为字符编码实现自己的过滤器并将其添加到web.xml中。看一下CharacterEncodingFilter的代码。