gpt4 book ai didi

php - 需要有关不受支持的字符的帮助

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

当我尝试获取数据库(mysql)中列值为(à¤1िंअी í的行时,我遇到了我认为是MySQL问题的问题•œêµì–´ اللغة الØ1رءÙØØ ),结果行似乎存在并且在 if 条件语句上为真。但是当我 var_dump 它时,它显示为空,而不是 null。

例如:(php/mysql)

输入数据:

  • id -> 1
  • 姓名 -> 鲍勃
  • 地址 -> हिंदी 한국어 हिंदी 한국어 ??? ???

表中存储的数据

  • [列]id = 1
  • [列]名称 =“鲍勃”

从mysql获取后的预期数据

  • id ->“1”
  • 姓名 -> “鲍勃”
  • 地址 ->\u00e0\u00a4\u00b9\u00e0\u00a4\u00bf\u00e0\u00a4\u201a\u00e0\u00a4\u00a6\u00e0\u00a5\u20ac\u00ed\u2022\u0153\u00ea\u00b 5\u00ad\u00ec\u2013\u00b4\u00d8\u00a7\u00d9\u201e\u00d9\u201e\u00d8\u00ba\u00d8\u00a9\u00d8\u00a7\u00d9\u201e\u00d8\u00b9\u00d8\u00b1\u0 0d8\u00a8\u00d9\u0160\u00d8

$mysql_result_row = array(
"id" => 1,
"name" => "Bob",
"address" => );

echo json_encode($mysql_result_row) // (shows nothing)
echo gettype($mysql_result_row) // array
echo $mysql_result_row['name'] // Bob
echo $mysql_result_row['address'] // (everything stops working, no php nor mysql error logs)


注释

  1. 上面的示例有 3 种不同的语言/字符集。
  2. हिंअी 是印地语
  3. í•œêµì–´ 是韩语
  4. اللغة الØ1Ø±Ø¡ÙŠØ 是阿拉伯语
  5. 不要问为什么单个列有 3 种不同的语言,因为我不知道
  6. 如果该地址栏中只有其中一种语言,则可以正常工作,没问题。只有当这 3 个结合起来时它才会停止工作

最佳答案

终于从这个引用文献中找到了解决方法:[ https://dev.mysql.com/doc/refman/8.0/en/charset-connection.html][1]

解决方案:

  • 在涉及非英语值的值前面加上 N。 MySQL INSERT/UPDATE 示例:“INSERT INTO ... () VALUES('$id', '$name', N'$address')”
  • 在查询 INSERT/UPDATE/SELECT 查询之前,我首先查询:“SET CHARACTER SET utf8”

尽管问题中所述的“$mysql_result_row”问题仍然是一个谜,但它仍然像部分损坏的变量,因为它包含一个无法正确处理的字符。

关于php - 需要有关不受支持的字符的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59951791/

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