【问题标题】:latin-1 to utf-8 data portinglatin-1 到 utf-8 数据移植
【发布时间】:2009-12-02 11:57:37
【问题描述】:

我有一个旧网站,其数据库采用 latin-1 编码。 我创建了旧站点的 drupal 站点副本 默认情况下,drupal 数据库采用 utf-8 编码 现在我如何将数据库从 latin-1 移植到 utf-8 。我试过自己,我得到了不需要的字符。我该怎么做。

【问题讨论】:

    标签: mysql sql-server encoding


    【解决方案1】:
    mysqldump ... | iconv -f ISO-8859-1 -t UTF-8 | mysql ...
    

    【讨论】:

      【解决方案2】:

      这是可能的解决方案:

      http://www.oreillynet.com/onlamp/blog/2006/01/turning_mysql_data_in_latin1_t.html
      

      希望有帮助:)

      【讨论】:

        【解决方案3】:

        您可以使用以另一种语言编写的脚本来执行此操作,例如在 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)
        

        【讨论】:

        • 可能,但转储和重新编码转储将比单独更新每条记录快得多。另外,您可以在使用时更改表/列定义。
        【解决方案4】:

        一种简单的手动方式:导出数据库的内容,例如使用 phpMyAdmin。然后创建一个 UTF-8 编码的空文本文件,复制并粘贴导出文件的内容,然后根据需要编辑表定义以使用 UTF-8。

        【讨论】:

        • 什么是“UTF-8 编码的空文本文件”?如果它是空的,它的编码应该是什么?
        • 你听说过像 MIME 类型这样的东西吗?…
        猜你喜欢
        • 2012-02-11
        • 2017-07-15
        • 2017-09-28
        • 1970-01-01
        • 1970-01-01
        • 2011-01-07
        • 1970-01-01
        • 2010-09-21
        • 2015-04-22
        相关资源
        最近更新 更多