2011-03-08 29 views
2

这是一个非常简单的动态页面(PHP),其菜单项改变了GET ID属性,该属性决定了要呈现哪个文本主体。也许编码是坏人?

在点击“Front Page”菜单时,会再次显示该网站,其内部ID设置为1 ,其中if-else决定显示哪些文本。

现在,我点击链接只是看到文字改变了,但每隔3-6次我就会点击一个随机的菜单项,整个页面文本中的一些字符(øæå)被替换为(æ=Ã|øø=øå=Ã¥)

该文本在网站上是静态的,它不是从数据库中获得的。这个问题不时出现,我无法在occerens中找到模式。

任何人都有可能发生错误?

我的网站meta标签设置为UFT-8 (<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />因此编码应该能够解析它)

我已经在网站上搞乱的唯一事情是的.htaccess但目前的情况是它是空的。

+0

您是通过“Content-Type”标头指定页面编码(如果是这样,它是什么),还是让浏览器尝试猜测编码? – 2011-03-08 13:13:10

+0

要避免这种编码问题,最好的办法是去'htmlentities()':D – Tsadiq 2011-03-08 13:20:53

+0

@Tsadiq:不。UTF8显然是更好的方法。 – ThiefMaster 2011-03-08 22:29:34

回答

2

确保您的字符编码在服务器发送的http-equiv="Content-type"元标记和Content-type标头中都设置为UTF-8 - 通常浏览器更喜欢真正的标头。

从你的PHP脚本发送标题,可以使用header('Content-type: text/html; charset=utf-8');

另一种方法是在你的htaccess文件做它。

+0

我将元集设置为默认值(忘记将其添加到代码标记中)。但是,如何在由服务器发送的标头中设置此Content-type? – Rasmus 2011-03-08 13:24:23

+0

'header('Content-type:text/html; charset = utf-8');' – ThiefMaster 2011-03-08 13:27:23

+0

现在有更多的noobness,对不起,但我究竟在哪里添加这段代码? – Rasmus 2011-03-08 13:37:51

0

检查您的文件的编码以及在HTTP标头和/或<head>中声明的编码。它们必须匹配才能在浏览器中显示良好的字符。

如果你在linux下,你可以用iconv来更改文件的编码。

如果仍然有问题,那里有主要有两种方式来解决这些问题:

  1. 使用html entities,但它可以是非常繁琐的。
  2. 声明你的页面为UTF-8,并使用utf8-encode

声明你的页面使用UTF-8编码,以下内容添加到您的<head>

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

您可能需要设置HTML编码:

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

此外,您的网页应以UTF-8编码。几乎所有的编辑器都提供编码选择。

0

尝试在你的头上加给你的HTML:

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

看来,这是一个浏览器的问题毕竟。 。 。当我使用Firefox的时候,它会让你搞砸,但是当我切换到IE浏览器时,这一切都很好。 。 。对于其他人似乎没有任何问题,所以猜测我在我的电脑上得到了一些废话,我需要删除。

但是,非常感谢你的awnsers!