2

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)是可以的。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" />

4

2 回答 2

9

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

<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>

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

在此处输入图像描述

于 2012-11-22T16:59:50.873 回答
0

因此,如果您告诉浏览器将其解释为 UTF-8,则来自数据库的数据有效,这意味着数据是 UTF-8 编码的。如果您告诉浏览器将其解释为 ISO-8859,则 HTML 代码有效,这意味着 HTML 以 ISO-8859 编码。

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

于 2012-11-22T17:05:44.830 回答