从MySQL导出中文字符

3

在将查询结果导出到XLS文件时,我遇到了关于中文字符的问题。在我的数据库中,中文字符被存储为编码格式,就像这样

新里程集团

当我在网页上显示这些字符时,借助PHP提供的标题函数,它们会自动转换为标准中文字符。但是我们想从MySQL中提取标准中文字符的XLS文件。

将所有内容转换为UTF8编码。确保文件也保存为UTF8编码。 - mplungjan
mplugjan是正确的。您可能需要检查以下内容:数据库存储、数据库连接编码、文件写入编码、文件打开(Excel?)。我建议首先检查问题是否仅出现在打开时... - Denys Séguret
3个回答

2
< p > mplungjan的建议是正确的,但实际操作并不容易。
作为临时解决方案,您可以使用iconvmb_convert_encoding


0

试试这个

mysqli_set_charset($connect,"utf8");


0

抱歉让它从死亡中复活,但由于这是在谷歌上针对该问题的第一个结果,我想分享一下自己的解决方案,因为我为此苦恼了一个小时。

如上所述,您在mySQL中的数据应存储为UTF8,并且列也应为UTF8(utf8mb4_general_ci)。

问题不在于导出本身,而在于Excel - 当导出文件以UTF8编码并且Excel数据以ANSI处理时(如果您只需单击文件即可打开文件,则会发生这种情况)。

您需要按以下方式将文件导入Excel:

  1. 创建新的Excel文件(只需打开Excel)。
  2. 选择“数据”>“从文本”。
  3. 选择导出的CSV文件。将显示“文本导入向导”对话框。查找带有预选“Windows - ANSI”的“数据源”下拉列表。将其更改为“65001 - Unicode (UTF8)”。
  4. 选择Delimited并单击下一步。
  5. 取消选择Tab,选择Comma,然后单击下一步。
  6. 单击完成。
  7. 在“导入数据”对话框中,单击“确定”。

万岁!如果有人有更简单的解决方案,请分享。天啊,在21世纪,我们仍然必须处理这种垃圾。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接