阿拉伯语/希伯来语/非拉丁字符,从数据库/动态源引擎中提取时,未正确呈现,而是显示为“??????”
每当用户将某些东西(比如上面显示的meta关键字)保存到数据库时,它就会以正确的编码正常保存,但保存后字符不能正确呈现,而是“?????”由于编码问题。
所有文件都是UTF-8编码,标题是UTF-8,数据库排序是utf8_general_ci,元字符集是utf-8,数据库连接也是utf-8。
通过MySQL控制台或PHPMyAdmin直接保存关键字会产生相同的结果,因此问题在于显示字符而不是保存它们。
使用mysql_query + mysql_fetch_array手动获取关键字将解决问题,因此问题是由用于获取关键字的函数(或包含此函数的文件)引起的。
可以找到Here
最好的问候
答案 0 :(得分:1)
如果您使用MySQL检查您的表和列是否设置为utf8。如果您已创建所有数据库结构并且之后将数据库编码更改为utf8,则不会更改现有表和列的编码。它只是为新创建的关系设置默认编码。
答案 1 :(得分:0)
我注意到你的网页是XHTML,不要在XHTML页面上使用htmlentities()(即使编码正确)。在XHTML(或XML)文档中应转换为实体引用的唯一字符是&,“,<,>
function xmlEntities( $s ) {
return str_replace( array( '&', '"', '<', '>' ),
array( '&', '"', '<', '>' ), $s );
}
答案 2 :(得分:0)