如何在MySQL中将utf8_general_ci更改或转换为二进制?

时间:2012-06-08 13:38:23

标签: mysql character-encoding mediawiki collation

当我测试MediaWiki的新版本(1.20wmf4)时,我看到了(请参阅:screen capture)以下有关数据库字符集的消息:

  

二进制模式中,MediaWiki将UTF-8文本以二进制字段存储到数据库中。 这比MySQL的UTF-8模式更有效,并允许您使用全范围的Unicode字符。

     

UTF-8模式中,MySQL会知道您的数据所在的字符集,并且可以正确显示和转换它,但它不会让您将字符存储在Basic Multilingual Plane上方。 / p>

我在MediaWiki引擎上有自己的Wiki,但我的表格是utf8_general_ci整理。我的问题是:如何轻松地将现有数据库中的排序从utf8_general_ci更改为binary

我的MediaWiki版本:1.19.0
我的MySQL信息:

  • 服务器:通过UNIX套接字的Localhost
  • 服务器版本:5.1.52
  • 协议版本:10
  • MySQL charset:UTF-8 Unicode(utf8)

1 个答案:

答案 0 :(得分:2)

不久前我不得不做类似的事情并按照这里的说明进行操作:http://www.mediawiki.org/wiki/Manual:Backing_up_a_wiki#Latin-1_to_UTF-8_conversion。您基本上必须导出数据库,在导出的SQL中将utf8_general_ci替换为binary,然后再次导入数据库。这些说明中的sed行不太正确,但您也可以手动编辑转储的SQL文件并修复utf8_general_ci的任何实例。