UTF-8字符集不正确地显示法语字符


UTF-8 Charset displaying french characters incorrectly.

我正在执行以下步骤将数据导入到我的电子商务商店:

  1. 在excel
  2. 中将excel表格转换为csv
  3. 在notepad++中打开csv文件并转换为UTF-8
  4. 在phpmyadmin中导入csv文件

如果我看一下网页的前端,法文字符显示为?页面的字符集是utf-8

如果我将字符集更改为iso-8859-1,一切都正确显示。

如果我检查phpmyadmin中的项,重音就会正确显示。

为什么utf-8不能正确显示它们?我认为它应该显示。

如果我转到网站的后端并编辑产品,法文描述将在所见即所得编辑器中正确显示。如果我保存产品,那么法语字符就会正确显示。但这是因为WYSIWYG编辑器正在将字符转换为html实体。

收集Unicode DATA时的一个常见问题是将Connection 数据库/表/列字符集配置为ISO-8859-1,但随后插入的数据实际上是utf-8。数据库实际上被告知,"这里有一些8859-1编码的数据,将其存储在这个8859-1表中"。它不做任何转换,因为它没有意识到数据不是8859-1。所以数据是utf-8,但数据库实际上被告知它是8859-1。

这是一个潜在的问题,因为,正如您所说,如果您将字符集更改为UtF-8,数据库将错误地转换,因为它将"8859-1"数据(记住数据库认为它是8859-1)转换为UtF-8 -当然转换失败,因为数据实际上是UtF-8。

所以基本上问题是phpmyadmin在8859-1中,但你告诉它在8859-1中插入数据,然后告诉它你在8859-1中提供数据,然后给它utf-8数据。数据库认为8859 - 1所以只简单的解决这个问题的方法是保持像8859 - 1,即使它不是,和希望你永远不需要处理排序、搜索、排序,等等(可以工作在你的情况下),或b)退出数据8859 - 1(离开它不改变的),然后重新插入后设置数据库和连接数据库知道utf - 8字符集数据真正

希望这有意义。如果没有,请告诉我。

您可以考虑使用PHP打开csv(因为您在标记中提到了它),并在使用查询保存它们之前对字段使用utf8_encode

这个问题太老了,但是在各种程序(如Excel等)中将文件的编码从ISO-8859-1更改为UTF-8对我来说不起作用。

我的问题是像intérêt这样的词在文件中显示为intérêt

如果这对某人有帮助,下面是我最终成功的方法:

    从CSV文件开始,在记事本中打开
  1. 点击"文件";拯救As"。
  2. 在出现的对话窗口中-选择"ANSI"从"编码";字段。然后点击"保存"。

就是这样!使用Excel打开这个新的CSV文件现在应该可以正确显示非英语字符。