gpt4 book ai didi

php - mysql日文字符显示不正确

转载 作者:行者123 更新时间:2023-11-28 23:12:04 24 4
gpt4 key购买 nike

我试图插入日语字符并显示它们,但我得到的只是乱码。我已将我的数据库编码设置为 utf8_general_ci;所有列都继承自表。

我使用的代码是:

$db = new Database;
$json = file_get_contents('php://input');
$obj = json_decode($json, TRUE);
$db->query("SET NAMES utf8");
$db->query("SET CHARACTER SET utf8");
$db->query("INSERT INTO `flash_cards`.`flash_card` (`kanji`) VALUES ('いく')");
$db->execute();
$db->query('select * from flash_card');
$rows = $db->resultset();
print_r('行く');
echo '行く';
print_r(json_encode($rows));

当我直接显示到页面时,页面可以正确显示汉字字符,但是当我从数据库中拉取时,问题就出现了。这让我相信这是一个编码/解码问题。

我收到的输出是

行く行く[{"id":"1","kanji":"\u3044\u304f"},{"id":"2","kanji":"\u3044\u304f"}]

我不确定我还能做什么。我花了很多时间试图解决这个问题,但无济于事。我很清楚整个 stackoverflow 中的几个帖子,但我仍然卡住了。

任何帮助将不胜感激。

最佳答案

仅当您的 MySQL 版本为 >= 5.6 时,以下内容才有效。

我没有任何日语字符/数据库要测试,但 following建议 CHARACTER SET utf8mb4 COLLATION utf8mb4_unicode_520_ci 可能比 SET CHARACTER SET utf8 更好。

编辑

没读那么多,抱歉,刚刚发现您使用了 json_encode() 来获取输出。

如果你想用 json_encode() 获取字符,你应该执行以下操作:

print_r(json_encode($rows, JSON_UNESCAPED_UNICODE));

关于php - mysql日文字符显示不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45537410/

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