![在 UBUNTU 和 CENTOS 上为 PHP 打印外文](https://linux22.com/image/515018/%E5%9C%A8%20UBUNTU%20%E5%92%8C%20CENTOS%20%E4%B8%8A%E4%B8%BA%20PHP%20%E6%89%93%E5%8D%B0%E5%A4%96%E6%96%87.png)
我正在使用 domdocuments 并使用 $div->nodeValue 之类的东西从网页获取某些信息。
在我的 ubuntu 机器上,当我执行 php crawl.php 时,所有内容都能以中文正确显示(页面采用 UTF-8 格式)。
但是在我的 CENTOS 机器上使用相同的代码在终端打印时会出现 æ´å¤åå¸ 。并且当我将其保存到数据库时,字符也会混乱。
我注意到的一件事是,当我打印 $content 时,两个系统都能正确显示它们。
答案1
检查 mysql 连接字符集和排序规则,当您插入抓取数据的内容时,Mysql 应该知道将使用哪个字符集和排序规则来存储数据。将下面的行添加到您的 php 脚本中。通过这种方式,您的代码将更加稳定,可以在不同的操作系统和配置上工作。
` $dbcharset='utf8'; $dbcollation='utf8_general_ci'; mysql_query('设置字符集'.$dbcharset); mysql_query("设置名称'.$dbcharset.."'排序'.$dbcollation.."'"); `