可能重复:
How to fix double-encoded UTF8 characters (in an utf-8 table)
我看到额外的字符,比如因为我在这里发现的编码问题而显示 - HTML encoding issues - "Â" character showing up instead of " "
据我所知,如果我将浏览器元编码设置为UTF-8,这些不会影响任何内容,但我需要从数据库中剥离这些额外的字符用于其他目的。
例如。 :
Text: ↑
应该成为Text: ↑
但如果我通过utf8_decode运行它,它会给我Text: �??
对于â字符的每次出现,它都会正确转换为空格。任何帮助将不胜感激。
答案 0 :(得分:1)
您的问题中没有分享太多信息,但根据您提供的示例:
↑ (has been imported as) ↑
这看起来你已经将它作为UTF-8存储到导出文件中,但在导入时告诉你该文件将是Windows-1252编码的。然后它再次被重新编码为UTF-8。
↑ UTF8: \xE2\x86\x91 UPWARDS ARROW (U+2191)
â - Windows 1252 \xE2 226 UTF8: \xC3\xA2 LATIN SMALL LETTER A WITH CIRCUMFLEX (U+00E2)
† - Windows 1252 \x86 134 UTF8: \xE2\x80\xA0 DAGGER (U+2020)
‘ - Windows 1252 \x91 145 UTF8: \xE2\x80\x98 LEFT SINGLE QUOTATION MARK (U+2018)
在MySQL中,Windows 1252
字符集的名称为latin1
(cp1252西欧,specific differences documented),有关完整列表,请参阅Character Sets and Collations That MySQL Supports。
这就是the related Q&A works中的解决方案。