asl*_*tor 15 php mysql character-encoding
我有一个MySQL数据库,其中包含所有表字段排序规则
latin1_swedish_ci
Run Code Online (Sandbox Code Playgroud)
它已经存储了近1000条记录,现在我想将所有这些数据转换成
utf8_general_ci
Run Code Online (Sandbox Code Playgroud)
这样我就可以显示任何语言内容.我已经改变了该领域的归类为utf8_general_ci但这并不CONVERT所有的旧记录到utf8_general_ci
小智 8
一个有趣的事情.
如果表中的charset处于正确编码状态,则Anshu建议的CONVERT TO CHARSET和CONVERT()/ CAST()将正常工作.
如果由于某种原因,latin1列包含utf8文本,CONVERT()和CAST()将无法提供帮助.我用这个设置"乱搞"了我的数据库,所以花更多的时间来解决这个问题.
除了字符集转换之外,还需要进行几项练习.
INSERT INTO UTF8_TABLE (UTF8_FIELD)
SELECT convert(cast(convert(LATIN1_FIELD using latin1) as binary) using utf8)
FROM LATIN1_TABLE;
Run Code Online (Sandbox Code Playgroud)
基本上,两种情况都会处理字符串到原始符号,然后处理到正确的编码,这不会发生在simple convert(field using encoding) from table;
命令中.
归档时间: |
|
查看次数: |
42176 次 |
最近记录: |