gpt4 book ai didi

php - json_encode 和口音

转载 作者:行者123 更新时间:2023-11-29 20:06:16 26 4
gpt4 key购买 nike

我有一个 json 编码并存储到数据库中的数组。我所有的 php 文件都是 utf8,我的 mysql 数据库是 utf8_general_ci。

我的数组包含可能包含重音字符的名称,json_encode 将其转换为\u 字符。这个数组被存储到我的数据库中。当我使用 jQuery.parseJSON 时,突出显示的字符正确显示。

info = jQuery.parseJSON(data);
console.log(info);

//"Bob Épine" which is good

但是当我想在 PHP 中使用 json_decode 时,\u 字符会保留。

print_r($this->opts['name']);
echo $this->opts['name'];

//Bob \u00c9pine
//Bob u00c9pine

我发现了这个函数 PHP: Replace \u characters in json string ,这是要走的路吗?它确实有效,但它似乎避免了问题而不是解决问题。

最佳答案

首先,将 JSON 存储在数据库表中听起来像是一个有缺陷的应用程序设计,但暂时搁置一下......

这听起来像 Bobby Tables领土给我。我的意思是,当您将数据插入数据库时​​,听起来您并没有转义 \ 。这意味着它从字符串中被剥离,所以你最终得到的是 uxxxx 而不是 \uxxxx,这意味着它们无法被解码。

现在,解决这个问题的方法多种多样,但您需要做的第一件事是确保数据正确插入数据库,并且编码后的 JSON 字符串与您输入的字符串相同它。如果你这样做并且你发现你仍然有这个问题,我有一个我之前写的函数将 unicode 代码点转换为它们的二进制表示(我只是为你找到的)

关于php - json_encode 和口音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11853957/

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