也许编码是坏人?

时间:2011-03-08 13:09:58

标签: php

这是一个非常简单的动态页面(php),其中的菜单项更改了GET id属性,该属性确定要呈现的文本正文。

在点击“Front Page”菜单时,将再次呈现网站,并将内部ID设置为1 其中一些if-else确定要显示的文本。

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

该文本在网站上是静态的,它尚未从数据库中获取。这个问题时不时发生,我无法在它的occerens中找到一个模式。

任何人都可能出错了?

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

我唯一在网站上搞乱的是.htaccess,但现在它已经空了。

5 个答案:

答案 0 :(得分:2)

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

要从PHP脚本发送标头,请使用header('Content-type: text/html; charset=utf-8');

另一种方法是在htaccess文件中执行此操作。

答案 1 :(得分:1)

您可能需要设置HTML编码:

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

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

答案 2 :(得分:0)

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

如果您使用的是Linux,则可以使用iconv更改文件的编码。

如果您仍有问题,主要有两种解决方法:

  1. 使用html entities,但这可能非常繁琐。
  2. 将您的网页声明为UTF-8,并使用utf8-encode
  3. 要将您的网页声明为使用UTF-8编码,请将以下内容添加到<head>

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

答案 3 :(得分:0)

尝试将此添加到您脑中的html中:

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

答案 4 :(得分:0)

毕竟这似乎是一个浏览器问题。 。 。当我使用Firefox时,它仍然搞砸了,但当我切换到IE时,一切都很好。 。 。其他人似乎没有任何问题所以猜测我的电脑上有一些垃圾我需要清除掉。

但是非常感谢你的笨蛋!