如何编译将表列从cp1251转换为utf8的SQL查询。我的数据库及其中的所有表都使用utf8编码,但是cp1251里面的信息。由于此信息显示不正确。只需更改设置中的编码,即可将它们转换为其他无法理解的符号。我试图在转储中更改DEFAULT CHARESET,但它也无济于事:(也许还有其他方法?

数据库的一部分:

mysql - sql:从cp1251转换为utf8-LMLPHP

我是这样做的:


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 operationCONVERT(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

10-05 20:46
查看更多