PHP-如何转换这些奇怪的字符? (ë,Ã,Ã,Ã,Ã,Ã)

我的页面上经常显示ë,Ã,Ã,Ã,Ã,Ã之类的内容来代替普通字符。

我将utf8用于标题页和MySQL编码。 这是怎么发生的?

3个解决方案
47 votes

这些是utf-8编码的字符。 使用utf8_decode()将它们转换为正常的ISO-8859-1字符。

Ray answered 2020-06-29T23:44:56Z
25 votes

如果看到这些字符,则可能是您未正确指定字符编码。 因为这些字符是使用单字节编码(例如ISO 8859-1或Windows-1252)解释UTF-8多字节字符串时的结果。

在这种情况下,可以使用0xC3 0xAB编码ë,该编码表示UTF-8中的Unicode字符ë(U + 00EB)。

Gumbo answered 2020-06-29T23:45:20Z
13 votes

即使<table>是一个有用的解决方案,我还是希望更正表本身的编码错误。 在我看来,纠正错误字符本身比在代码中进行“修改”要好。 只需在桌子上的字段上执行<table>。 要更正来自OP的错误编码字符,请执行以下操作:

update <table> set <field> = replace(<field>, "ë", "ë")
update <table> set <field> = replace(<field>, "Ã", "à")
update <table> set <field> = replace(<field>, "ì", "ì")
update <table> set <field> = replace(<field>, "ù", "ù")

其中<table>是mysql表的名称,而<field>是表中列的名称。 对于那些通常编码错误的Windows-1252到utf-8字符的代码,这是一个很好的检查清单->调试图表,将Windows-1252字符映射为UTF-8字节,并将其映射为Latin-1字符。

在尝试用SQL替换任何字符之前,请记住备份您的表!

[我知道这是对一个非常老的问题的解答,但是又一次面对了这个问题。 某些旧的Windows计算机在将文本插入utf8_general_ci整理表之前未正确编码文本。

davidkonrad answered 2020-06-29T23:45:55Z
translate from https://stackoverflow.com:/questions/5127744/how-to-convert-these-strange-characters-%c3%83-%c3%83-%c3%83%c2%ac-%c3%83%c2%b9-%c3%83