【发布时间】:2009-12-02 11:57:37
【问题描述】:
我有一个旧网站,其数据库采用 latin-1 编码。 我创建了旧站点的 drupal 站点副本 默认情况下,drupal 数据库采用 utf-8 编码 现在我如何将数据库从 latin-1 移植到 utf-8 。我试过自己,我得到了不需要的字符。我该怎么做。
【问题讨论】:
标签: mysql sql-server encoding
我有一个旧网站,其数据库采用 latin-1 编码。 我创建了旧站点的 drupal 站点副本 默认情况下,drupal 数据库采用 utf-8 编码 现在我如何将数据库从 latin-1 移植到 utf-8 。我试过自己,我得到了不需要的字符。我该怎么做。
【问题讨论】:
标签: mysql sql-server encoding
mysqldump ... | iconv -f ISO-8859-1 -t UTF-8 | mysql ...
【讨论】:
这是可能的解决方案:
http://www.oreillynet.com/onlamp/blog/2006/01/turning_mysql_data_in_latin1_t.html
希望有帮助:)
【讨论】:
您可以使用以另一种语言编写的脚本来执行此操作,例如在 Groovy 中您会这样做:
def utf8 = java.nio.charset.Charset.forName("UTF-8")
def latin1 = java.nio.charset.Charset.forName("ISO-8859-1") // this is latin1
def newString = new String(fetchStringFromDB().getBytes(latin1), utf8)
updateStringInDB(newString)
【讨论】:
一种简单的手动方式:导出数据库的内容,例如使用 phpMyAdmin。然后创建一个 UTF-8 编码的空文本文件,复制并粘贴导出文件的内容,然后根据需要编辑表定义以使用 UTF-8。
【讨论】: