如何在php中输出utf-8文本

Posted

技术标签:

【中文标题】如何在php中输出utf-8文本【英文标题】:How to output utf-8 text in php 【发布时间】:2014-10-10 12:37:30 【问题描述】:

我正在编写的程序必须输出 utf-8。 当页面加载时,php 会为每个关键字查找 $_GET['id'] 和 echo 的内容。示例:

if($_GET['id']=="keyword1")
echo('reply for keyword1');
else if($_GET['id']=="keyword2")
echo('reply for keyword2');

“echo”命令的回复必须是 UTF-8 格式,因为只有另一个只能理解 UTF-8 的程序才能访问该页面。

当我尝试读取页面时,输出不完全是 UTF-8。

问题 1:标准的 echo 命令是什么类型的编码? 问题 2:如果 echo 不输出 UTF-8 而是其他的东西。如何在 UTF-8 中转换 echo 命令的标准输出?

【问题讨论】:

How to best configure PHP to handle a UTF-8 website的可能重复 echo 输出你告诉它输出的任何内容; echo 不知道也不关心字符集……这取决于您的代码,以确保您使用 echo 输出的值是 utf-8 如何告诉 echo 输出 utf-8? 将文件编码设置为不带BOM的UTF-8,并向浏览器发送标头,告知带有字符集的Content-Type。 你能给我一些示例代码吗? 【参考方案1】:

echo 输出你给它的任何数据。在 PHP 中,字符串是简单的字节数组,没有 PHP 知道的相关编码。如果您的字节数组字符串包含 UTF-8 编码文本,echo 将输出 UTF-8 编码文本。如果它包含 JPEG 图像的原始字节,echo 将输出 JPEG 图像。

你的字符串是如何编码的取决于你从哪里得到它。如果它是源代码中的字符串文字,它将具有它所在文件的编码。如果您在文本编辑器中将文件保存为 UTF-8 并在其中写入 echo 'Foo';echo 将输出“Foo " 以 UTF-8 编码。

请参阅 UTF-8 all the way through 和 What Every Programmer Absolutely, Positively Needs To Know About Encodings And Character Sets To Work With Text。

【讨论】:

以上是关于如何在php中输出utf-8文本的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 PHP 列出不属于 ISO 8859-1 字符集的文本文件中使用的所有 UTF-8 字符?

如何在php中更改文件的输出颜色

如何从 Perl 输出 UTF-8?

如何在 PHP 中输​​出 Excel 可以正确读取的 UTF-8 CSV?

如何在 Perl 中清理无效的 UTF-8?

如何保存在PHP CodeIgniter中的文本框中输入的数据