[英]UTF-8 Charset displaying french characters incorrectly.
我正在执行以下步骤将数据导入我的电子商务商店:
如果我查看网页的前端,法语字符显示为 ?。 页面的字符集是 utf-8
如果我将字符集更改为 iso-8859-1,一切都会正确显示。
如果我检查 phpmyadmin 中的项目,则重音显示正确。
为什么 utf-8 不能正确显示它们? 我认为它应该显示é等。
如果我转到网站的后端并编辑产品,法语描述会正确显示在 WYSIWYG 编辑器中。 如果我保存产品,则法语字符会正确显示。 但这是因为 WYSIWYG 编辑器正在将字符转换为 html 实体。
收集 Unicode 数据时的一个常见问题是将连接和数据库/表/列字符集配置保留为 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,所以解决问题的唯一简单方法是 a) 继续像 8859-1 一样行事,即使它不是,并希望您永远不必处理排序、搜索、整理等(可能有效在您的情况下),或 b) 将数据提取为 8859-1(保持未转换),然后在将数据库和连接设置为 utf-8 后重新插入它,以便数据库知道数据真正使用的字符集。
希望这是有道理的。 如果没有,请告诉我。 这是一个很难缠住你的头。
您可能会考虑使用 PHP 打开 csv(因为您在标签中提到了它),并在使用查询保存它们之前在字段上使用 utf8_encode。
这个问题太老了,但是在 Excel 等各种程序中将文件的编码从 ISO-8859-1 更改为 UTF-8 对我不起作用。
我的问题是像intérêt
intérêt
在文件中显示为intérêt
。
如果这对某人有帮助,以下是最终对我有用的方法:
就是这样! 使用 Excel 打开这个新的 CSV 文件现在应该可以正确显示非英文字符。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.