gpt4 book ai didi

php - 阿拉伯文本在 php/mysql 中有时会出现 “???” 有时会在 select/insert 语句后出现 "Ùؤتا"

转载 作者:可可西里 更新时间:2023-11-01 08:27:50 24 4
gpt4 key购买 nike

我有一个正在进行的项目,我需要从 mysql 表中获取阿拉伯语文本,并时常插入/更新它们。我在“utf8_general_ci”中有我的数据库排序规则。

一开始我发现问号“???”在获取一些阿拉伯数据后。然后我执行了“SET CHARACTER SET utf8”。该特定问题的问号问题已解决,但随后其他阿拉伯语数据开始显示乱码“Ùؤتا”。在项目中,我还需要从包含阿拉伯文本的 csv 中获取一些数据。

这里是我查到的charset执行前后的json数据:

[{
"id": 148,
"domain": 0,
"group_name": "ATX ??????????",
"score": 0,
"player_name": "لاعب واحد",
"created_at": "2015-10-26 13:01:23"
},
{
"id": 148,
"domain": 0,
"group_name": "???? ???????",
"score": 1,
"player_name": "اثنين من لاعب",
"created_at": "2015-10-26 12:59:57"
}]

// ---------------------------------------
// After executing "SET CHARACTER SET utf8"
// ---------------------------------------


[{
"id": 148,
"domain": 0,
"group_name": "ATX توكوروزاوا",
"score": 0,
"player_name": "مؤتا",
"created_at": "2015-10-26 13:01:23"
},
{
"user_id": 148,
"domain": 0,
"group_name": "لندن دينيموز",
"score": 1,
"player_name": "كابوا",
"created_at": "2015-10-26 12:59:57"
}]

谁能告诉我这里出了什么问题?我正在尝试解决此问题,但找不到任何解决方案。

最佳答案

مؤتامؤتا的Mojibake :

  • 您在客户端中的字节已正确编码为 utf8(良好)。
  • 您连接了 SET NAMES latin1 (或 set_charset('latin1') 或 ...),可能是默认设置。 (应该是 utf8 。)
  • 表格中的列可能是也可能不是CHARACTER SET utf8 ,但应该是这样。

لاعب可能是“双重编码”——避免使用该路径。

"ATX ??????????" --

utf8大约需要在4个地方建立。

  • 数据库中的列 -- 使用 SHOW CREATE TABLE验证它们是否显式设置为 utf8,或默认为表定义。 (更改数据库 默认值 是不够的。)
  • 客户端和服务器之间的连接。参见 SET NAMES utf8 .
  • 你拥有的字节数。 (大概就是这种情况。)
  • 如果您要在网页中显示文本,请检查 <meta>标签。

另见 UTF-8 all the way through

关于php - 阿拉伯文本在 php/mysql 中有时会出现 “???” 有时会在 select/insert 语句后出现 "Ùؤتا",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33360108/

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