【问题标题】:export and import utf8 data in mysql: best practices在mysql中导出和导入utf8数据:最佳实践
【发布时间】:2010-05-04 08:16:21
【问题描述】:

我们经常需要将数据文件发送给我们的一位客户,其中包含他/她需要翻译的数据库中的数据。大多数情况下,此导出是 CSV 或 XLS。 大多数时候,我们使用 phpmyadmin 创建一个 csv 转储,并获取一个 xls 文件作为翻译数据的回报。问题是大多数时候数据是 UTF8,当文件以 xls 格式返回时,每次我们再次将数据加载到 mysql 中时,我们都会遇到 utf8 问题,字符无法正确显示等......

我们已经仔细检查了 mysql 中从 my.conf 到列字符集的所有内容,并且所有内容都正确设置为 UTF8。

我的问题是不是如何解决编码问题,因为这已经解决了,但是我们将来如何最好地处理这种情况?我们应该交出什么导出格式?我们应该如何导入(只是mysql加载数据infile或我们自己的处理脚本)。关于如何处理这种情况的普遍共识是什么?

如果可能,我们希望继续使用 excel,因为这是几乎所有人都期望的格式,包括我们客户的翻译机构。我们客户的易用性是这里最重要的因素,不会让我们每次都遇到重大问题。两全其美:)

【问题讨论】:

    标签: mysql utf-8 import export


    【解决方案1】:

    我目前正在开发的应用程序也包括数据导入功能。数据大多采用 utf-8 编码。

    我的方法是将导入的 CSV(或制表符分隔)(以任何编码)文件预处理为客户端脚本(Python)中正确的 utf-8 编码临时 CSV 文件,并使用 LOAD DATA INFILE 语句加载文件的内容.

    文件的编码由character_set_database系统变量控制(该变量应该在服务器级别设置)并且从MySQL 5.1.17开始可以被CHARACTER SET子句覆盖加载数据文件。

    唯一应该知道的是 MySQL 最多为每个字符存储 3 个字节,而不是 4 个(这可能是东方语言的问题)。

    要高效地导出大量数据,您可以使用 SELECT ... INTO OUTFILE 语句。

    【讨论】:

    • 所以你真的知道当客户端返回转储时你将如何/什么格式和编码?不幸的是,事实并非如此:(
    • @ChrisRamakers:那么问题是什么?您想要一种自动理解导入文件编码的方法吗?
    猜你喜欢
    • 1970-01-01
    • 2016-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多