如何使php与utf-8字符串一起工作


How to make php work with utf-8 strings?

显然,这不起作用:

<?php
$newstring = "测试";
echo $newstring;
?>

如何使它与utf-8字符串一起工作?

编辑:

我刚刚意识到,webmin的在线文件编辑器不会自动将文件保存为utf-8编码的文件,在将新文件上传到我的服务器后,一切都很好,最棒的是,在线文件编辑器似乎甚至不支持任何utf-8编码的文件。

"显然"是一个奇怪的措辞,因为这个实际上运行得很好,如果:

  1. 源代码与ASCII兼容,因此PHP可以对其进行解释
  2. 源代码和字符串保存在读取方将要解释它的相同编码中

因此,如果您将此文件保存为UTF-8(与ASCII兼容)并在浏览器中打开,则浏览器需要将页面解释为UTF-8。您可以通过设置适当的HTTP标头来实现这一点。如果你要在命令行上执行这个脚本,终端必须能够解释UTF-8并能够显示它

PHP中的字符串文字是原始字节数组,PHP不会对其进行解释。它们可以是你想要的任何东西。它们可以是像图像一样的二进制数据,只要你能让你的文本编辑器正确地保存文件。它们只被试图在屏幕上显示字符的一方解释为文本。请参阅每个程序员绝对、积极地需要知道的关于编码和字符集的信息,以了解极其深入的细节。

您需要将源代码保存为UTF-8编码的

此外,您可以将其添加到源代码中

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

将其写入php.ini文件:

default_charset = "utf-8";

如果没有,你将不得不在每个文件的顶部设置标题,如:

header("Content-Type: text/html; charset=utf-8");

如果您将这些字符串保存在那里,还可以查看数据库设置。