【问题标题】:Differing outputs depending on where one is accessing a page from?不同的输出取决于从哪里访问页面?
【发布时间】:2011-04-10 21:30:07
【问题描述】:

我遇到了一个关于 PHP 和 字符集编码的奇怪问题..

我正在开发一个 PHP 页面,它会输出一些 latin(ã、á、à 等)字符

当我从 localhost 运行该页面时,它运行良好。但是,当我将其上传到我的测试服务器并通过 url 访问它时,所有拉丁字符都会变成小方块(顺便说一下,在 IE 中)。

我已将浏览器上的字符编码来回更改为 utf8、西欧等,但似乎都不起作用

有人有想法吗?

【问题讨论】:

    标签: php browser utf-8 character-encoding


    【解决方案1】:

    php.ini 中的default_charset 设置为UTF-8,或者如果您对此没有控制权,则将以下行添加到PHP 文件的顶部,之前您向响应正文发出任何字符:

    header('Content-Type: text/html;charset=UTF-8');
    

    另见:

    【讨论】:

      【解决方案2】:

      您是否检查了本地主机和测试服务器的 php.ini 文件中的不同 default_charset 设置?

      【讨论】:

        【解决方案3】:
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> // Or actual encoding
        </head>
        

        【讨论】:

        • 是的,我会在可以编辑代码后立即尝试,但即使在 html 页面的开头未将其设置为 utf8,它也应该在我手动设置时开始工作我的浏览器可以读取 utf8 吗?还是不行。
        • 如果 PHP 打印的内容是用 utf-8 编码的,并且你在 HTML 中有这个标签,那么一切都应该没问题。如果这些字符来自数据库 - 检查那里的编码是否设置正确。
        • 我知道。但是即使php输出 utf8 并且 html内容类型不是 utf8,当我将浏览器设置为utf-8。那应该覆盖内容类型标记并正确显示用 utf8 编写的内容。我的问题是,即使我将浏览器设置为使用utf8 通过右键单击等等,它仍然不起作用.它应该。
        • 好吧,IE 并不是最可靠的浏览器,你知道吗:p
        • 我知道。但是让我烦恼的是,当文件位于我的本地主机时它可以工作。但是当我将它上传到其他地方并然后尝试访问它时不会。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-03
        • 1970-01-01
        相关资源
        最近更新 更多