gpt4 book ai didi

javascript - jQuery HTML 追加导致 UTF-8 国家语言字符问题

转载 作者:行者123 更新时间:2023-11-29 11:58:18 24 4
gpt4 key购买 nike

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

因此,当我发布某些内容时,它会进入数据库,插入,对象由我插入的数据和适当的 html 返回到 jQuery 来完成,不幸的是,由于某些原因,它显示的不是国家字母,而是以下内容:u0142u00f3

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

想法?

在进入数据库类之前:

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

从数据库类(class)回来后:

$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]));

是不是stripslashs毁了它?我需要添加这个和这些 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>"}

最佳答案

在 PHP 5.4 中,您可以对 json_encode 使用 JSON_UNESCAPED_UNICODE 标志。

在 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)
);

}

关于javascript - jQuery HTML 追加导致 UTF-8 国家语言字符问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32809587/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com