php - 无法将某些字符导入 MySQL

标签 php mysql csv utf-8 character-encoding

<分区>

这个问题简直要了我的命,我找不到一个在线解决方案来工作!

我正在尝试通过 Navicat 的导入向导将以下文本从 CSV 导入到 MySQL 表:

L154 – TRAINING WARRANTY

连字符是一个宽连字符,到目前为止,我已经设法将其导入为问号或内部带问号的黑色菱形。 £ 符号和其他特殊字符也是如此。

enter image description here

每个人总是谈论 UTF-8。到目前为止我已经尝试过:

在 Excel 中保存 CSV,单击工具 > Web 选项 > 编码:UTF-8

右键单击数据库并单击“编辑”。将 Char 设置为 utf8 Unicode 和 Collat​​ion:utf8_general_ci

我已经“设计”了表格并将上面的 2 个选项设置为完全相同。

我已经编辑了有问题的 varchar 字段,并将相同的 2 个字段再次设置为上面的 2 种类型。

但我的连字符无法正确导入。

如果能确切地知道如何一劳永逸地导入包含 £ 符号和其他特殊字符的数据,那就太好了。

最佳答案

您可以使用 htmlentities() 以编码形式存储这些符号,例如

£ 将是 £ 将是 ,通过使用:

echo htmlentities('£');

并且在检索时,只需使用 html_entity_decode() 就像:

echo html_entity_decode('&pound;'); // output £

编辑:正如评论中所讨论的,您是如何尝试从 CSV 文件导入数据的。您必须更改 CSV 文件的编码,这可以使用 Notepad++ 完成,方法是转到 Encoding->Encode in UTF-8

关于php - 无法将某些字符导入 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47136621/

相关文章:

php - 按日期范围获取列的总和

Javascript 从电子表格中读取

python - 快速读取所有 csv 文件并更新共享字典

c# - 逗号分隔的文本文件到通用列表

php - 永久推送到数组的末尾

PHP & MySQL INSERT INTO 问题

mysql - SQL选择其中1个值大于然后从其他4个中选择一个

php - PHP 中精确的预计到达时间结果的日期差异

php - MySQL/PHP : Comparing large sets of 2 specific rows in one table (POKER-calculator)

mysql - 如何从数据库表中获取值作为数组并将其返回到下拉列表中?