Turkish characters are not displayed correctly
本问题已经有最佳答案,请猛点这里访问。
MySQL数据库使用UTF-8编码,数据存储正确。我使用set_name utf8 query来确保调用的数据是UTF-8编码的。只要头字符集是UTF-8,数据库中的所有变量都可以正常工作,但静态HTML字符不能正常工作。当我将头字符集设置为ISO-8859-9时,变量的显示会有所不同,而HTML字符工作正常。有人能帮我吗?utf8编码:http://oi48.tinypic.com/289kje1.jpg html标记在显示值时有问题。但是php数据(绿色的例如a?我?LER)来自数据库的代码是OK.iso编码http://oi50.tinypic.com/287n2ph.jpg这次HTML正常,但PHP数据显示错误。
1 2 3 4 5 6 7 | <?php header('Content-Type: text/html; charset=ISO-8859-9'); ?> <!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head>noname <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
您可以尝试在文件顶部显式添加内容类型,如下所示
1 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
并从代码中删除以下内容。
1 |
更新:
1 2 3 4 5 6 7 8 9 10 | <!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Untitled Document </head> <body> <?php echo"for example ? and ?"; ?> </body> </html> |
上面的代码给出了下面的输出:
因此,如果您告诉浏览器将数据库中的数据解释为utf-8,这意味着数据是utf-8编码的。如果您告诉浏览器将其解释为ISO-8859,则HTML代码可以工作,这意味着HTML是用ISO-8859编码的。
所以你有一个混合编码的文档。把这两个放在一起。将源代码文件保存为utf-8,并告诉浏览器将其解释为utf-8,或者从ISO-8859中的数据库中获取数据,并告诉浏览器将其解释为utf-8。