JSON弄乱了我的变音符号

时间:2014-08-19 10:09:28

标签: ajax json encoding vbscript asp-classic

我正在使用jQuery AJAX POST和JSON发送一个字符串:

$.ajax({
    type: "POST",
    dataType: "JSON",
    url: "someUrl.asp?param1=someParam1",
    contentType: "charset=utf-8",
    data: JSON.stringify({
        some_code: $( "#some_code" ).length > 0 ? $("#some_code").val() : ''
        })
    })

Serverside是VBScript / ASP。

some_code是一个文本框,其中包含以下文字:someValue čšžćđ,需要像这样保存。

扫描网络流量时(IE9)我看到了这个: some_code=someValue Äšžćđ

查看数据库(Oracle 12c)时,我看到了: someValue ?????

Html页面编码是Windows-1250。 NLS_LANG和NLS_CHARACTERSET是Slovenian

我已经尝试过至少十几个不同的链接,但无济于事,所以我转向你们男孩和女孩。谢谢!

1 个答案:

答案 0 :(得分:0)

从评论中我知道我理解这个问题;

JSON必须以contentType: "charset=utf-8"的形式发送,因此页面someUrl.asp也需要在UTF-8处理才能按照以下步骤进行处理。

  

根据您的comment对以下代码进行了一些更改。

  1. 首先使用someUrl.asp编码而不是 UTF-8重新保存ASCII文件。

  2. someUrl.asp中的第一行设置为;

    <%@Language="VBScript" CodePage = 65001 %>
    
  3. 然后添加以下行;

    <%
    Response.Charset = "Windows-1250"
    Response.CodePage = 1250
    %>
    
  4.   

    注意:进行更改时,请务必记住使用UTF-8编码保存文件。