如何删除Â字符

时间:2010-01-28 08:47:23

标签: php mysql character-encoding

我有一个非常奇怪的问题。我有一个php网站,运行在两个服务器上。一个是Apache(Linux),另一个是IIS(WIndow)。 Linux Server,我只是运行它进行演示。 IIS是我需要托管的实际托管。即使在Linux服务器中使用所有相同的代码,数据库,也没有任何字符。但在IIS中,到处都有角色。我检查了所有元标记,它是utf-8。在数据库中,整理也是utf-8。在mysql数据库中,我得到了那些character字符,但不知何故,在linux中,当我们从数据库中获取内容时,那些Â不显示。它只发生在IIS上。任何人都可以指出我如何解决这个问题?谢谢。

4 个答案:

答案 0 :(得分:2)

前一段时间我有类似的问题,这里有一些有用的评论和信息 - 这是PHP,但我相信理论是一样的:Question 386378

答案 1 :(得分:2)

您还需要在HTTP标头中指定UTF-8。使用PHP:

<?php
header('Content-Type: text/plain; charset=utf-8');
?>

使用Apache:

AddDefaultCharset UTF-8

Apache设置可以放在 .htaccess 文件中。

答案 2 :(得分:1)

  

我检查了所有元标记,它是utf-8。

浏览器不解释元标记。当没有http-header存在时,它只是一个后备。右键单击并选择“查看页面信息”以查看浏览器实际解释页面的编码。

  

在数据库中,整理也是utf-8。在mysql数据库中

归类与字符显示无关。然而, charset 很重要。连接字符集也是如此。

答案 3 :(得分:0)

尝试使用FiddlerFirebug之类的内容直接检查html回复。检查IIS / Apache(应该返回完全相同的文本)的响应是否具有:

  • 不同的数据
  • 不同的标题

要特别注意Content-Type标题,它应该说明返回文本所在的字符编码(utf-8,ISO / IEC 8859-1,Latin-1等)。