我正在使用domdocuments并使用诸如$ div-> nodeValue的东西来从网页获取特定的信息。
在我的ubuntu机器上,当我做php crawl.php一切正常显示在中文(页面是在UTF-8)。
但是,在我的CENTOS机器上使用相同的代码时,我在terminal打印时会看到æ'å¤ååå¸。 当我把它保存到数据库时,这些字符也被搞乱了。
我注意到的一件事是,当我打印$内容时,两个系统都正确显示它们。
检查mysql连接字符集和sorting规则,当你插入抓取数据的内容时,Mysql应该知道哪些字符集和sorting规则将被用来存储数据。 添加下面的行到你的PHP脚本。 通过这种方式,您的代码将更加稳定,适用于不同的操作系统和configuration。
` $ dbcharset = 'UTF8'; $ dbcollation = 'utf8_general_ci'; mysql_query('SET CHARACTER SET'。$ dbcharset); mysql_query(“SET NAMES'”。$ dbcharset。“'COLLATE'”。$ dbcollation。“'”); `