DOM UTF8 日本字符集


DOM UTF8 Japan char set

我想处理日语页面,但会给出此字符错误。

  <?php
    $profile="<div><p>イリノイ州シカゴにて、アイルランド系の家庭に、9</p></div>";
    $dom = new DomDocument();
    $dom->loadHTML(mb_convert_encoding($profile, 'HTML-ENTITIES', 'UTF-8'));
    $divs = $dom->getElementsByTagName('div');
    foreach ($divs as $div) {
        echo $dom->saveHTML($div);
    }
    //or
    $dom->loadHTML('<?xml encoding="utf-8" ?>' . $profile);
    ?> 

返回此值:

イリãƒã‚¤å·ã‚·ã‚«ã‚´ã«ã¦ã€ã‚¢ã‚¤ãƒ«ãƒ©ãƒ³ãƒ‰ç³»ã®å®¶åº­ã«ã€9

如何解决这个问题?

更新

我使用简单的 dom 解析器:

<?php
require_once("/simple_html_dom.php");
$html = str_get_html("<p>イリノイ州シカゴにて、アイルランド系の家庭に、9</p>");
echo $html->find('p', 0)->plaintext;
?>

返回 ã'¤ãƒªãƒã'¤å·ã'·'¦ã''’'¦ã'¢ãƒ«ãƒ ンラ‰ç³»ã®å¶åºã®«ã€9

我认为您的 php 文件文本编码是 EUC。我只能通过 EUC 或 UTF-8 执行此程序。并且,UTF-8 没有字符编码错误。如果您安装了 NKF,请尝试运行。

  1. 检查字符编码

    NKF --猜你的文件.php

  2. 更改字符编码

    nkf -s ./yourfile.php> ./sjis.php
    nkf -e ./yourfile.php> ./euc.php
    nkf -w ./yourfile.php> ./utf8.php
    nkf -j ./yourfile.php> ./jis.php

  3. 那些尝试跑步

    的人3-1. SJIS.php

    PHP 通知: iconv(): 在 806 行的/var/www/simple_html_dom.php 的输入字符串中检测到非法字符

    3-2. EUC.php

    Υ ʕơ ɷϤβ l 9

    3-3. UTF8.php

    イリノイ州シカゴにて、アイルランド系の家庭に、9

    3-4.php吉斯.php

    PHP 警告:输入中的意外字符:第 3
    行的/var/www/jis.php 中的 '' (ASCII=27) 状态=0 PHP 解析错误:语法错误,第 3
    行/var/www/jis.php 中意外的"("

只是浏览器编码现在正在设置"iso-8859-1"。