为了账号安全,请及时绑定邮箱和手机立即绑定

PHP DOMDocument loadHTML没有正确编码UTF-8

PHP DOMDocument loadHTML没有正确编码UTF-8

PHP
浮云间 2019-07-31 18:15:46
PHP DOMDocument loadHTML没有正确编码UTF-8我正在尝试使用DOMDocument解析一些HTML,但是当我这样做时,我突然失去了编码(至少这对我来说是这样)。$profile = "<div><p>various japanese characters</p></div>"; $dom = new DOMDocument(); $dom->loadHTML($profile);  $divs = $dom->getElementsByTagName('div'); foreach ($divs as $div) {     echo $dom->saveHTML($div); }这段代码的结果是我得到了一堆不是日语的字符。但是,如果我这样做:echo $profile;它显示正确。我尝试过saveHTML和saveXML,但都没有正确显示。我使用的是PHP 5.3。我所看到的:ã¤ãªãã¤å·ã·ã«ã´ã«ã¦ãã¢ã¤ã«ã©ã³ãç³»ã®å®¶åº­ã«ã9人åå¼ã®5çªç®ã¨ãã¦çã¾ãããå½¼ãå«ãã¦4人ã俳åªã«ãªã£ããç¶è¦ªã¯æ¨æã®ã»ã¼ã«ã¹ãã³ã§ãæ¯è¦ªã¯éµä¾¿å±ã®å®¢å®¤ä¿ã ã£ããé«æ ¡æ代ã¯ã­ã£ãã£ã®ã¢ã«ãã¤ãã«å¤ãã¿ãæè²è³éãåããªããã«ããªãã¯ç³»ã®é«æ ¡ã¸é²å­¦ã应该展示什么:イリノイ州シカゴにて、アイルランド系の家庭に、9人兄弟の5番目として生まれる。彼を含めて4人が俳優になった。父親は木材のセールスマンで、母親は郵便局の客室係だった。高校時代はキャディのアルバイトに勤しみ、教育資金を受けながらカトリック系の高校へ進学编辑:我已将代码简化为五行,以便您自己测试。$profile = "<div><p>イリノイ州シカゴにて、アイルランド系の家庭に、</p></div>"; $dom = new DOMDocument(); $dom->loadHTML($profile); echo $dom->saveHTML(); echo $profile;这是返回的html:<div lang="ja"><p>イリノイ州シカゴã«ã¦ã€ã‚¢ã‚¤ãƒ«ãƒ©ãƒ³ãƒ‰ç³»ã®å®¶åº­ã«ã€</p></div> <div lang="ja"><p>イリノイ州シカゴにて、アイルランド系の家庭に、</p></div>
查看完整描述

3 回答

?
猛跑小猪

TA贡献1858条经验 获得超8个赞

确保将真实源文件保存为UTF-8(您甚至可能希望尝试使用UTF-8的非推荐BOM表来确保)。

同样在HTML的情况下,请确保使用meta标记声明了正确的编码:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

如果它是CMS(因为您使用Joomla标记了您的问题),您可能需要为编码配置适当的设置。


查看完整回答
反对 回复 2019-07-31
  • 3 回答
  • 0 关注
  • 841 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信