mysql - 在mysql中导出导入utf8数据 : best practices

标签 mysql utf-8 import export

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

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

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

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

最佳答案

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

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

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

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

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

关于mysql - 在mysql中导出导入utf8数据 : best practices,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2763770/

相关文章:

mysql - 执行变量中存在的 mysql 查询

java - 如何将java源代码导入到项目中

python - 如何为 Python 实现此导入语句?

mysql - 根据一列数据合并MySQL中的2个表

mysql - 在灵活的环境中将 Google App Engine 与 Google Cloud Storage 连接起来

MySQL:选择三个表中的数据

php - sql数据字符集/字符集,设置名称不起作用

html - 谁在复制/粘贴时进行转换?

java - 如何检测文件的字符编码?

html - 如何将svg从文件导入 Angular 为5的组件中?