如何编译将表列从cp1251转换为utf8的SQL查询。我的数据库及其中的所有表都使用utf8编码,但是cp1251里面的信息。由于此信息显示不正确。只需更改设置中的编码,即可将它们转换为其他无法理解的符号。我试图在转储中更改DEFAULT CHARESET
,但它也无济于事:(也许还有其他方法?
数据库的一部分:
我是这样做的:
mysqldump -u mysql -p Conference_db --allow-keywords --create-options --complete-insert --default-character-set = utf8 --add-drop-table> dump.sql
全部...默认CHARESET = utf8更改为... DEFAULT CHARESET = cp1251(在CREATE TABLE中)
mysql -u mysql -p Conference_db --default-character-set = cp1251
最佳答案
使用转储和还原操作很难做到这一点。
但是,您可以使用CONVERT operation:CONVERT(column USING utf8)
在SELECT语句中转换有问题的列的字符集。
例如,如果您有一个新的空表,并且该列上设置了正确的字符,这会将旧表复制到新表并进行转换。
INSERT INTO new_table
SELECT journal_id, locale, setting_name,
CONVERT(setting_value USING utf8) setting_value
setting_type
FROM table