-1

我已经搜索了一段时间,但没有找到答案。

我正在从数据库中输出信息,并jQuery.getJSON在 javascript 中使用它来检索它。问题是如果数据库字段有重音符号,它将不会被发送。但是,如果没有重音,它会。

javascript代码是标准的:

 jQuery.getJSON (
        toURLget,
        null,
        function(data) {

我有

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

在标题中,所以不是那样。我已经尝试对 json 进行编码,但没有奏效。

4

1 回答 1

2

您可以尝试在发送之前转义服务器端的字段和数据。

在客户端,您可以使用:

var result = unescape(dataFromServer);

(您没有说明您使用的服务器平台)。

有关escape/unescape功能的更多信息:http:
//www.w3schools.com/jsref/jsref_escape.asp

更新

正如评论(@Tommi)中所述,还有其他方法可以对此进行解码(摘自文章):

escape()-

escape 和 unescape 函数可让您对字符串进行编码和解码。转义函数返回 ISO 拉丁字符集中参数的十六进制编码。unescape 函数返回指定十六进制编码值的 ASCII 字符串。

encodeURI()-

encodeURI 方法返回一个编码的 URI。如果将结果传递给 decodeURI,则返回原始字符串。encodeURI 方法不对以下字符进行编码:“:”、“/”、“;”和“?”。使用 encodeURIComponent 对这些字符进行编码。

encodeURIComponent()-

encodeURIComponent 方法返回一个编码的 URI。如果将结果传递给 decodeURIComponent,则会返回原始字符串。因为 encodeURIComponent 方法对所有字符进行编码,所以如果字符串表示路径,例如 /folder1/folder2/default.html,请小心。斜杠字符将被编码,如果作为请求发送到 Web 服务器将无效。如果字符串包含多个 URI 组件,请使用 encodeURI 方法。

http://xkr.us/articles/javascript/encode-compare/

于 2013-06-28T09:56:16.853 回答