我遇到了MySQL表编码的问题。
我做了什么
数据/问题
从MS Word复制并粘贴相关列(评论)。
我尝试过:
UPDATE table_name SET col_name = CONVERT(CONVERT(CONVERT(col_name USING latin1) USING binary) USING utf8);
这削减了数据。例如,“花费10英镑甚至更多的好评”。运行上述查询后,它将变为“ncie review costting”。
任何帮助/建议都将受到重视。 谢谢, 马特
答案 0 :(得分:0)
要仔细检查您是否拥有正确的utf8设置,请尝试以下操作:
mysql> show variables like 'char%';
输出应如下所示:
+--------------------------+---------------------------------+ | Variable_name | Value | +--------------------------+---------------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | /usr/local/mysql/share/charsets/| +--------------------------+---------------------------------+
mysql> show variables like 'collation%';
这应该给你:
+----------------------+-----------------+ | Variable_name | Value | +----------------------+-----------------+ | collation_connection | utf8_general_ci | | collation_database | utf8_unicode_ci | | collation_server | utf8_unicode_ci | +----------------------+-----------------+
如果您没有找到/etc/my.cnf
或/etc/mysql/my.cnf
,请执行sudo find / -name my.cnf
找到后,vim /etc/my.cnf
按i
插入文字并添加
[mysqld] collation-server = utf8_unicode_ci init-connect='SET NAMES utf8' character-set-server = utf8
随意注释掉前一个/旧的[mysqld]块或行。
按esc
保存文件,然后点击:wq
并按enter
service mysql restart
或service mysqld restart
希望有所帮助。