【问题标题】:UTF-8 Problems while sending Jquery Ajax发送 Jquery Ajax 时出现 UTF-8 问题
【发布时间】:2013-10-31 02:19:21
【问题描述】:

我编写了一个 js 脚本来将表单数据发布到我的 php 后端。但是 Textfield 会以错误的编码接收它。

这是我对这个网站的元标记:

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

这是我的文本区域:

<textarea id="orderlistlieferanschrift" style="width:294px; height:80px; resize:none;"></textarea>

这是我的 php 脚本:

header('Content-typ: content="text/html; charset=UTF-8');
$postdata = $_POST["postData"];
error_log($postdata);

数据收集如下:

var Lieferanschrift           = $("#orderlistlieferanschrift").val();
aOrderInformations[9]         = Lieferanschrift;

这是我的 ajax 请求:

var postData = JSON.stringify(aOrderInformations);
if(!ajaxload2) {
    //alert(postData);
    ajaxload2 = true;   
    $.ajax({
        type : 'POST',
        url : 'share/content/helper/writeorderdata.php',
        cache: false,
        dataType : 'json',
        data: {postData:postData},
        success: function() {
                        ajaxload2 = false;
                        alert("erledigt");
        }
    });
} 

在服务器日志中显示的数据如下:

"Zentrale Oberursel\\nGablonzer Stra\xc3\x9fe 35\\n61440 Oberursel"

当我在 jquery ajax 中使用选项 data-Typ 和他们一起玩时,数据不会发送。

【问题讨论】:

  • 您实际上从文本字段中得到了正确的响应。我在我的网站联系表中使用了类似的东西。 "header('Content-typ' 当然可以是类型...
  • 我已经用这些选项测试了 arround 但没有成功

标签: javascript php jquery ajax utf-8


【解决方案1】:

如果您必须确保每件事都井井有条...... 1:表默认字符集 utf8 COLLATE utf8_general_ci; 2:在你的 html 头部添加 utf-8:

连接到 MySQL 数据库后试试这个...

而不是使用

header('Content-typ: content="text/html; charset=UTF-8');

使用下面的

mysql_query("SET NAMES 'utf8'");

【讨论】:

  • 错误是 json 数组的 error_log 中的编码:“Zentrale Oberursel\\nGablonzer Stra\xc3\x9fe 35\\n61440 Oberursel”
  • \xc3\x9f 它必须是 ß
  • 不,很遗憾没有
  • 函数 UTF8($str) { return (utf8_encode(utf8_decode($str)) == $str); }
  • 我发现了失败。这是第 8 层问题。我通过 putty 终端 (ssh) 连接到我的网络服务器,而 xterm 在没有配置的情况下无法理解 utf-8。我用 mysql_query("SET NAMES 'utf8'"); 将数据写入数据表中它工作得很好!谢谢
【解决方案2】:

添加到

AddDefaultCharset utf-8 到 httpd.conf(apache 配置文件?)

或者是打错了

header('Content-typ: content="text/html; charset=UTF-8');

header('Content-type: content="text/html; charset=UTF-8');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-10
    • 1970-01-01
    • 1970-01-01
    • 2015-11-04
    • 2012-11-08
    • 2011-12-31
    相关资源
    最近更新 更多