如何在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 字符?