【问题标题】:How to set UTF-8 encoding for a PHP file如何为 PHP 文件设置 UTF-8 编码
【发布时间】:2011-06-30 17:01:42
【问题描述】:

我有一个 PHP 脚本,名为:

http://cyber-flick.com/apiMorpho.php?method=getMorphoData&word=kot

以纯文本形式显示一些数据:

Cz��� mowy: rzeczownik
Przypadek: dope�niacz
Rodzaj: şe�ski
Liczba: mnoga

正如您所见,代替适当的字符,有很多“灌木丛”。我想做的是以某种方式显示它,以便人们在浏览器中看到正确的 UTF-8 字符。

你可以将它封装在HMTL标签中并设置为元UTF-8编码,但是因为从这个脚本接收到的数据将被进一步处理我不想使用任何HTML标签,它应该只是纯文本结果集.

那么有没有办法在不使用元标记的情况下通知浏览器这个文件是 UTF-8 的呢?

附言。文件以 UTF-8 编码,如果我手动将浏览器中的字符集编码更改为 UTF-8,它会显示正常,但我想要完成的是人们不需要这样做。

【问题讨论】:

标签: php api utf-8


【解决方案1】:
header('Content-type: text/plain; charset=utf-8');

【讨论】:

  • 这是正确的方法。顺便说一句,Content-Type 通常是大写的。 (这有什么不同吗?)
  • 很抱歉,这是一个 IIS 相关问题 - 有些人报告小写标题无法正常工作
【解决方案2】:

另请注意,将标题设置为"text/plain" 将导致所有 html 和 php(部分)将屏幕上的字符打印为 TEXT,而不是 HTML。因此,请注意使用文本类型plain 时可能无法解析 HTML。

使用:

header('Content-type: text/html; charset=utf-8');

也可以返回 HTML 和 PHP。不仅仅是文字。

【讨论】:

    【解决方案3】:

    默认情况下,PHP 总是返回以下标头:“Content-Type: text/html”(注意没有字符集),因此您必须使用

    <?php header('Content-type: text/plain; charset=utf-8'); ?>
    

    【讨论】:

    • 他发送的是纯文本,而不是 html。
    • @awm:那又怎样?它会改变什么吗?
    • 内容类型应该是text/plain,而不是text/html。
    • 是的,它们的显示方式不同。
    • @awm:哎呀,对我来说双重失败。
    【解决方案4】:

    试试这个header('Content-Type: text/plain; charset=utf-8');

    【讨论】:

      【解决方案5】:

      您必须指定数据的编码方式。在元数据或标题中

      header('Content-Type: text/plain; charset=utf-8');
      

      【讨论】:

      • @tomaszs:嗯,我错过了什么?我已经写了所有可能的地方来指定编码。它是元和标题。
      • 是的,我写 meta 是不可能的,你写我应该使用 meta。
      • @tomaszs:我写过你必须根据情况选择其中任何一个。而且我已经阅读了所有问题,这就是为什么我给出了一个带有标题的示例,而没有关于 meta。
      • 在有人发布之前,您的第一个答案是没有示例的。所以请不要写你读它,因为你没有。你可以写好——我没写,没关系。但现在你只是走错路了。没关系。
      【解决方案6】:

      HTML 文件:

      <head>
      
      <meta charset="utf-8">
      
      </head>
      

      PHP 文件:

      <?php header('Content-type: text/plain; charset=utf-8'); ?>
      

      【讨论】:

        【解决方案7】:

        HTML:

        <!DOCTYPE html>
        <html>
        <head>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
        <meta name="x" content="xx" />
        

        vs PHP:

        <?php header('Content-type: text/html; charset=ISO-8859-1'); ?>
        <!DOCTYPE HTML>
        <html>
        <head>
        <meta name="x" content="xx" />
        

        【讨论】:

          猜你喜欢
          • 2012-03-10
          • 2012-05-26
          • 1970-01-01
          • 2015-05-18
          • 2011-11-06
          • 2018-02-17
          • 2013-01-18
          • 2014-09-11
          • 1970-01-01
          相关资源
          最近更新 更多