使用 UTF-8 编码,具有特殊属性/外来字符的 CSV 文件在导入 MySQL (phpMyAdmin) 时不保留

Posted

技术标签:

【中文标题】使用 UTF-8 编码,具有特殊属性/外来字符的 CSV 文件在导入 MySQL (phpMyAdmin) 时不保留【英文标题】:Using UTF-8 encoding, CSV file with special properties/foreign characters not preserved when imported into MySQL (phpMyAdmin) 【发布时间】:2014-03-09 03:51:00 【问题描述】:

我的表需要支持几乎所有字符(日语、丹麦语、俄语等)

但是,当使用 UTF-8 编码将 2 列表从 Excel 中保存为 CSV,然后使用 phpMyAdmin 导入并选择 UTF-8 编码时,许多原始字符都丢失了(具有特殊属性的字符,例如变音符号、重音符号等)此外,有问题的字符后面的任何内容都将被完全删除。我完全不知道是什么导致了这个问题。

编辑:对于那些遇到相同问题的人,我建议先在 Notepad++ 中打开您的 CSV 文件并转到“编码 > 转换为 UTF-8”(而不是“在 UTF-8 中编码”) .然后导入它。它肯定会起作用。

【问题讨论】:

您能否在支持 Unicode 的编辑器中查看 CSV 文件并检查它是否确实已正确保存?您使用的字体是否支持 Unicode?​​span> 我们也不知道。您必须自己进行一些基本的故障排除。 @TimPietzcker - 我使用 Notepad++ 打开了文件,它告诉我文件不是 UTF-8,而是 ANSI。我第一次这样做时,我选择了“编码 > UTF-8 编码”然后保存它。仍然无法正确导入。但是,Notepad++ 中的“编码”下还有另一个选项,称为“转换为 UTF-8”。这就是让我困惑的地方。看来我的表现在已使用第二个选项正确导入。感谢您的帮助。 哪个 phpMyAdmin 版本? @MarcDelisle - 版本 4.0.9 使用 XAMPP。 【参考方案1】:

我在这里找到了答案: https://help.salesforce.com/apex/HTViewSolution?id=000003837

基本上从excel保存为unicode文本文件, 然后在代码友好的文本编辑器中用逗号替换所有选项卡, 重新另存为utf8 将文件从 .txt 更改为 .csv

直接从excel导出到.csv会导致日语出现问题,这就是我寻求帮助的原因......

【讨论】:

以上是关于使用 UTF-8 编码,具有特殊属性/外来字符的 CSV 文件在导入 MySQL (phpMyAdmin) 时不保留的主要内容,如果未能解决你的问题,请参考以下文章

BigQuery json 特殊字符 UI 导出问题

处理 C 中的特殊字符(UTF-8 编码)

特殊 ä ö 字符打破 UTF-8 编码

PHP/AJAX:无法在 ajax 响应中显示外来字符

Python - 使用 utf-8 编码读取和写入 csv 文件

外来字符的电子邮件验证