Spanish Characters not Displaying Correctly
我得到了可爱的?应显示西班牙语字符的框。(?)、阿等)。我已经确保我的meta-http-equiv设置为utf-8:
1 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
我还确保页面标题也设置为UTF-8:
1 |
以下是迄今为止我的代码的开始阶段:
1 2 3 4 5 6 7 8 |
上面的代码在WHERE语句中。我已经读到在数据库中切换排序规则也是一个因素,但我已经将它设置为utf-8常规CI。另外,该列中唯一的内容就是日期时间,它是数字,无论如何都无法排序。
结果:S?八度八
一如既往地感谢您的帮助。
php/mysql/utf-8需要考虑的问题
- 数据库表和文本列应设置为UTF-8
HTML页面内容类型应设置为UTF-8
PHP应该发送一个消息头,通知浏览器期望使用UTF-8
header('Content-Type: text/html; charset=utf-8' ); php-mysql连接应该设置为utf-8
mysqli_query("SET CHARACTER_SET_CLIENT='utf8'",$conn); mysqli_query("SET CHARACTER_SET_RESULTS='utf8'",$conn); mysqli_query("SET CHARACTER_SET_CONNECTION='utf8'",$conn); php ini有默认的字符集设置,应该是utf-8如果您无法访问它,请使用
ini_set('default_charset', 'utf-8'); 。
我多年来一直在遭受这个问题,我找不到任何逻辑,我已经尝试了以上所有的解决方案。
一种解决方案是为所有文本生成HTML代码。这里有一个函数,我在其他所有函数都失败时使用。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | function span_accent($wordz) { $wordz = str_replace("á","Á",$wordz); $wordz = str_replace("é","É",$wordz); $wordz = str_replace("í","Í",$wordz); $wordz = str_replace("ó","Ó",$wordz); $wordz = str_replace("ú","Ú",$wordz); $wordz = str_replace("?","Ñ",$wordz); $wordz = str_replace("ü","Ü",$wordz); $wordz = str_replace("á","á",$wordz); $wordz = str_replace("é","é",$wordz); $wordz = str_replace("í","í",$wordz); $wordz = str_replace("ó","ó",$wordz); $wordz = str_replace("ú","ú",$wordz); $wordz = str_replace("?","ñ",$wordz); $wordz = str_replace("ü","ü",$wordz); $wordz = str_replace("?","¿",$wordz); $wordz = str_replace("?","¡",$wordz); $wordz = str_replace("€","€",$wordz); $wordz = str_replace("?","«",$wordz); $wordz = str_replace("?","»",$wordz); $wordz = str_replace("?","‹",$wordz); $wordz = str_replace("?","›",$wordz); return $wordz; } |
请检查您的文件编码。它必须是UTF-8或UTF-8格式,没有BOM。
更改文件编码。使用记事本+(您也可以使用其他编辑器更改文件编码)。在菜单栏>选择编码>选择任何不带BOM的UTF-8或UTF-8。
有关没有BOM的utf-8和utf-8的区别,请参见链接。没有BOM的utf-8和utf-8有什么不同?
希望能有所帮助。:)
有一个类似的问题,我在这里找到了答案。不显示西班牙语字符
分辨率从UTF-8改为Windows-1252。
1 2 | (HTML) <meta http-equiv="Content-Type" content="text/html; charset=windows-1252" /> (PHP) ini_set('default_charset', 'windows-1252'); |
我的问题是从csv文件中读取西班牙语字符。当我在Excel中打开文件时,字符看起来很好。在我的编辑器中,无论预期的字符是什么,都会显示奇数字符。这一变化似乎符合我的要求。
您能在数据库表中看到内容是正确的吗?例如,使用phpmyadmin查看它。如果是,请确保您的php文件是utf8编码的,请查看您的IDE/编辑器配置。
检查代码是否也编码为UTF-8是很重要的(您可以在许多文本和代码编辑器中看到这个属性)。
因为只有一个符号(黑色方块),所以很可能您使用的是ISO-8859-1或ISO-8859-15。