php – 正确的字符编码显示“—?
作者:互联网
我有一些讨厌的字符编码问题,我无法弄清楚.
基本上,我是使用PHP从网站上抓取一些HTML,然后通过PHP的DOMDocument运行它来更改一些URL等等,当它完成后,它会输出一些奇怪的东西.例如:应该有一个结束语,它会发出& acirc;€
我将charset的页面元标记设置为utf-8,然后是& acirc;€字符在网站上显示为“.”.我不确定我是不是不理解字符编码,或者是什么.
有关解决此问题的最佳方法的任何建议吗?客户端是否有元标记或某种服务器端PHP转换?
解决方法:
有时在HTML或响应头中设置charset是不够的.如果您的服务器上没有为UTF-8设置所有内容,那么您的文本可能会在整个过程中被错误地转换.您可能需要在其配置文件中为Apache和PHP启用UTF-8编码. (如果您没有使用Apache,请尝试跳过该步骤.)
Apache UTF-8设置:
编辑您的charset.conf(理想)或httpd.conf文件,方法是将此行添加到结尾:
AddDefaultCharset utf-8
(如果您无权访问Apache的配置文件,则可以使用相同的代码在HTML的根目录中创建“.htaccess”文件.)
PHP UTF-8设置:
编辑php.ini文件,搜索“default_charset”,并将其更改为:
default_charset = "utf-8"
重启Apache:
根据您的服务器类型,此命令可以通过命令行执行此操作:
sudo service apache2 restart
标签:php,character-encoding,utf-8,domdocument,screen-scraping 来源: https://codeday.me/bug/20191007/1869426.html