无法将某些字符导入MySQL

时间:2017-11-06 12:02:46

标签: php mysql csv utf-8 character-encoding

这个问题绝对让我伤心,我无法在线获得单一解决方案!

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

L154 – TRAINING WARRANTY

连字符是一个宽连字符,到目前为止,我已设法将其作为问号或带有问号的黑色钻石导入。对于£符号和其他特殊字符也一样。

enter image description here

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

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

右键单击数据库,然后单击“编辑”。将字符集设置为utf8 Unicode和排序规则:utf8_general_ci

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

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

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

很高兴知道如何一劳永逸地导入包含£符号和其他特殊字符的数据。

1 个答案:

答案 0 :(得分:1)

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

£将为£将为–,使用:

echo htmlentities('£');

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

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

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