如何解决错误:#1977 - 无法将“utf8”字符 0xD8AD 转换为“latin1”

问题描述 投票:0回答:2

我正在 phpmyadmin 工作,其中名称列中有阿拉伯值,例如

کلء الرقيّة Ø1Ù„ÛŒ الØ1زیØ2ءوریï

我想将它们转换为正确的形式。

我尝试了这些查询,它转换了表中的大部分记录

ALTER DATABASE alfeker_book CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE guestbook CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
UPDATE guestbook SET name = CONVERT(BINARY CONVERT(name USING latin1) USING utf8mb4);

也尝试过

UPDATE guestbook SET name = CONVERT(BINARY CONVERT(name USING binary) USING utf8mb4);

但其中很少有保持不变并给出此错误

#1977 - Cannot convert 'utf8' character 0xD8AD to 'latin1'

我也尝试过这个查询:

SELECT id,name, CONVERT(BINARY CONVERT(name USING latin1) USING utf8mb4) AS converted_name FROM guestbook;

效果很好,可以完美显示未转换的字符。但是当我使用更新查询时它不起作用。

mysql utf-8 phpmyadmin sql-update iso-8859-1
2个回答
0
投票

这就是阿拉伯文本的 Mojibake 或“双重编码”。

修复数据的方法有多种。只有一个能让事情变得更好;其余的让情况变得更糟。

请阅读UTF-8 字符出现问题;我看到的不是我存储的,并遵循有关获取数据库中内容的十六进制的建议,加上当前模式定义的

SHOW CREATE TABLE
。还提供
SHOW VARIABLES LIKE 'char%';
和连接参数。

并且请在尝试各种

ALTERs
CONVERTs
之前备份到。

使用十六进制,我可能可以选择正确的转换。


-1
投票

我如何找回被盗的加密比特币 2023

EthicRefinance 是救星!他们帮助我毫不费力地追回了被盗的价值 105,000 美元的比特币。他们的服务不仅快速而且专业可靠。作为一个对这个过程持怀疑态度的人,我很惊喜地看到我的比特币以如此迅速和无麻烦的方式返还。 EthicRefinance 真正做到超越自我,确保客户满意。我向任何处于类似情况的人推荐它们。我非常感谢他们的帮助。谢谢你,EthicRefinance! 您可以通过以下方式联系他们:

电子邮件:ethicsrefinance @g m a i l。 com 网站:www.ethicsrefinance.com

© www.soinside.com 2019 - 2024. All rights reserved.