【问题标题】:Combine different headers in PHP for non-English text在 PHP 中为非英文文本组合不同的标题
【发布时间】:2013-08-13 07:52:17
【问题描述】:

我正在使用 PHP 来显示一些外语文本。

  echo '<li> NO ENGLISH </li>';

显示我使用的用 PHP 编写的非英语语言:

header('Content-Type: text/html; charset=windows-1255');

但是当我从表单中获取已发布的变量并尝试回显它们时,它会显示垃圾。 我注意到设置下一个标题,修复它:

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

此标题正确显示它,但在第一个示例中显示失败。

如何将这些不同的标头设置合并到同一个文件中?

【问题讨论】:

  • 你可以使用 Charset A 也可以使用 Charset B,不能同时使用两个 Charset 标题

标签: php encoding utf-8 content-type


【解决方案1】:

您不能在单个文档中混合编码。整个文档必须采用一种一致的编码,并且只有一个标头集表示该编码。如果您从多个来源收到不同编码的字符串,请使用mb_convert_encodingiconv 将它们转换为一种统一编码(最好是UTF-8)。

如果您的'&lt;li&gt; NO ENGLISH &lt;/li&gt;' 只是保存在源代码文件中的硬编码文本,请在文本编辑器中以不同的编码保存文件。请参阅UTF-8 all the way throughHandling Unicode Front To Back In A Web App

【讨论】:

  • 谢谢,我删除了所有的标头并简单地将其保存为 UTF-8。
猜你喜欢
  • 2014-01-27
  • 2013-04-13
  • 2015-10-01
  • 1970-01-01
  • 2016-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-07
相关资源
最近更新 更多