【发布时间】:2013-03-02 03:38:08
【问题描述】:
我有一个非常奇怪的问题,无法弄清楚。 我正在使用记事本++,如果我将文件保存为带有希腊字符(不是来自数据库的字符)的 .php,它会在 Web 浏览器中将希腊字符显示为问号,但如果我将相同的字符文件保存为 .html,它会正确显示字符。
如果从数据库中显示希腊字符,它会正确显示它们而不会出现问题。它在我的共享主机上也不能正常工作,但在我的本地主机上工作正常。
我尝试以不同的编码保存 .php 文件,但仍然是同样的问题。我还尝试使用 utf-8 添加 php header() 和元标记,但没有运气。
可能是什么问题? 谢谢
【问题讨论】:
-
保存文件的编码必须与您声明的编码匹配(例如,通过 Meta 标签)。如果你确保这些匹配,它应该可以工作。如果还是不行,您能否在此处显示一个示例并检查您的浏览器该页面实际使用的编码?
-
我现在无法使用十六进制编辑器,但是这些??对我来说看起来像正常的问号。你确定你在 Notepad++ 中保存了正确的希腊字符并且文件是 UTF-8 编码的吗?这似乎几乎是不可能的。你能回到 .html 文件并再次将其保存为 Php 吗?看起来你的角色在途中的某个地方出现了乱码
-
您是否尝试过在 Notepad++ 中使用 BOM 和不使用 BOM 进行保存?
-
是的,弗雷德,我都试过了,但运气不好。
-
我用 BOM 试过(从你的来源),它显示得很好。如果我在没有 BOM 的情况下保存它,一切都会变得一团糟。请注意,在 Notepad++ 中,您必须从“编码”菜单中选择“转换为”而不是“编码输入”,然后保存文件。
标签: php html mysql encoding utf-8