【问题标题】:jQuery HTML append causes UTF-8 national language chars issuejQuery HTML 追加导致 UTF-8 国家语言字符问题
【发布时间】:2015-12-24 21:41:42
【问题描述】:

我在附加从 UTF-8 驱动的 InnoDB MySQL 数据库返回的 html 时遇到了问题——实际上是对象,它用数据完成并返回以由 jQuery 异步显示。网站和数据库仅使用 UTF-8。

所以当我发布一些东西时,它会进入数据库,插入,对象被我插入的数据和适当的 html 返回给 jQuery,不幸的是由于某些原因,而不是国家字母,显示如下内容:@ 987654321@等

当我刷新网站时,它恢复正常,并且字符正常显示。

想法?

在进入 DB 类之前:

$strNoBreakSpace = mb_convert_encoding(' ', 'UTF-8', 'HTML-ENTITIES');
$strNormalSpace = mb_convert_encoding(' ', 'UTF-8', 'HTML-ENTITIES');
$ntc = str_replace($strNoBreakSpace, $strNormalSpace, $content);

从DB课回来后:

$thread= str_replace(array(chr(10), chr(13)), '', $thread);
$thread_html = json_encode(array('status' => 1, 'success' => $thread_html));
array_push($results, $upd, $ins, $thread_html);

在展示给 jQuery 之前:

    $list = array('success' => stripslashes($result[2]));

是stripslashes破坏它吗?我需要添加这个和这些 mb_converts,否则我在那个 html 中的 json 对象有问题,有很多 slases /td、/tr\、\r\r 等。

jQuery 看到的是:

{"status":1,"success":"<tr>                    <td class="col-md-1">27.09.15</td>ttt        <td class="col-md-1 ws-nowrap"><a href="#"><span class="label label-info label-as-badge">Test</span></a></td>                    <td class="col-md-5"><a href id="id" name="id" href="#">u0142u00f3</a></td>                    <td class="col-md-5">u0142u00f3</td>                </tr>"}

【问题讨论】:

  • 您以某种方式剥离斜线,数据应该是:\u0142\u00f3 即:łó ¿我们可以看到一些代码吗?
  • 嗨,Marcos,在上面的帖子中添加了一些代码。感谢支持!
  • 你能把$result[2]的内容加进去,让我给你一个正确的答案。
  • 已加入主题:)
  • 不完全确定 td 之后的“ttt”是什么,它不在我的代码中......,应该只有第一个 td 带有日期,第二个带有类别(作为徽章),第三个带有内容。

标签: javascript jquery mysql utf-8


【解决方案1】:

在 PHP 5.4 中,您可以将 JSON_UNESCAPED_UNICODE 标志用于 json_encode

在 PHP 5.3 或更低版本中,这里有一个辅助函数:

function json_encode_unicode($input) {

    return preg_replace_callback(
        '/\\\\u([0-9a-zA-Z]{4})/',
        function ($matches) {
            return mb_convert_encoding(pack('H*',$matches[1]),'UTF-8','UTF-16');
        },
        json_encode($input)
    );

}

【讨论】:

    猜你喜欢
    • 2014-01-12
    • 2017-08-10
    • 2013-04-13
    • 2018-09-22
    • 1970-01-01
    • 2010-10-26
    • 1970-01-01
    • 1970-01-01
    • 2011-04-19
    相关资源
    最近更新 更多