如何编译将表列从 cp1251转换为utf8 的SQL查询。我的数据库和其中的所有表格都带有utf8的编码,但是cp1251里面的信息。由于此信息显示不正确。在设置中对编码进行简单更改会将其转换为其他难以理解的符号。我试图在转储中更改DEFAULT CHARESET
,但它也没有帮助:(也许还有其他方法?
数据库的一部分:
我这样做了:
答案 0 :(得分:0)
使用转储和恢复操作很难做到这一点。
但是,您可以使用CONVERT operation转换SELECT语句中违规列的字符集:CONVERT(column USING utf8)
例如,如果您在列上有一个包含正确字符集的新空表,则会将旧表复制到新表并进行转换。
INSERT INTO new_table
SELECT journal_id, locale, setting_name,
CONVERT(setting_value USING utf8) setting_value
setting_type
FROM table
答案 1 :(得分:0)
表上的默认字符集无关紧要。重要的是字符串列上的字符集。
备份到原件;我担心失败的转换只会让事情变得更糟,而且更难解开。
屏幕截图看起来很像“Mojibake”。 (如果您可以将数据粘贴到问题中,我可以进一步分析。)请参阅here中的“Mojibake”,了解导致错误的原因。
有关恢复数据的帮助,请提供SHOW CREATE TABLE
和SELECT HEX(col) ...
,以便我们了解您拥有的内容。 (“来自cp1251的列”含糊不清)。