土耳其字符无法正确显示

时间:2012-11-22 16:58:18

标签: php html mysql encoding

MySql数据库使用utf-8编码并正确存储数据。我使用set_name utf8查询来确保调用的数据是utf-8编码。只要标题字符集是utf-8,数据库中的所有变量都可以正常工作,但是静态html字符无法正常工作。当我将标题字符集设置为ISO-8859-9时,变量显示不同而html字符工作正常。任何人都可以帮助我吗? Utf8编码:http://oi48.tinypic.com/289kje1.jpg html标签有问题显示值。但来自数据库的php数据(绿色的,例如ağişler)是ok.ISO编码http://oi50.tinypic.com/287n2ph.jpg这次html没问题,但php数据显示错误

<?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><title>noname</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

2 个答案:

答案 0 :(得分:5)

您可以尝试在文件顶部显式添加内容类型,如下所示

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

并从代码中删除以下内容..

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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<?php echo "for example Ş and İ "; ?>   
</body>
</html>

上面的代码给出了以下输出:

enter image description here

答案 1 :(得分:0)

因此,如果您告诉浏览器将其解释为UTF-8,则数据库中的数据会起作用,这意味着数据是UTF-8编码的。如果您告诉浏览器将其解释为ISO-8859,那么HTML代码就可以工作,这意味着HTML是用ISO-8859编码的。

所以你有一个带有混合编码的文件。将这两者结合在一起。将源代码文件保存为UTF-8并告诉浏览器将其解释为UTF-8,或者从ISO-8859中的数据库中获取数据并告诉浏览器如此解释。