【问题标题】:Turkish characters are not displayed correctly [duplicate]土耳其语字符显示不正确[重复]
【发布时间】:2012-11-22 16:58:18
【问题描述】:

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

【问题讨论】:

  • 那么,您的内容是 UTF-8 还是 ISO 编码的?不可能两者兼而有之。以 UTF-8 格式保存您的源代码!
  • 我希望它是 utf-8 编码的,但土耳其字符在 utf-8 中显示不好。例如 Ş 和 İ 在不包含标头字符集 ISO 时是 ��。

标签: php html mysql encoding


【解决方案1】:

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

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

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

【讨论】:

  • 那么静态字符显示错误
  • 通过一些示例或屏幕截图向我们展示它们是如何显示的以及您希望它们如何显示..
  • Utf8 编码:oi48.tinypic.com/289kje1.jpg html 标签显示值有问题。但是来自数据库的 php 数据(绿色的,例如 ağişler)是可以的。ISO 编码 oi50.tinypic.com/287n2ph.jpg 这次 html 可以,但是 php数据显示错误。
  • 请找到我回复的更新..并检查它是否解决了问题..
  • 好吧,我让它工作了。在我的编辑器中使用 utf8-without bom 选项后,问题得到了解决。你的就是答案。谢谢
【解决方案2】:

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

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2015-07-30
  • 2017-09-29
  • 1970-01-01
  • 1970-01-01
  • 2015-01-07
  • 1970-01-01
  • 1970-01-01
  • 2018-08-03
相关资源
最近更新 更多