在PHP中为非英语文本组合不同的标题


Combine different headers in PHP for non-English text

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

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

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

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

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

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

此标头正确显示它,但在第一个示例中无法显示它。

如何在同一个文件中组合这些不同的标头设置。?

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

如果'<li> NO ENGLISH </li>'只是保存在源代码文件中的硬编码文本,请在文本编辑器中以其他编码保存该文件。全程查看UTF-8,并在Web应用程序中前后处理Unicode。