1

我想处理一个日文页面,但会给出这个字符错误。

  <?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

4

2 回答 2

0

我认为您的 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

    ����Υ����������ˤơ��������������ɷϤβ����ˡ�9

    3-3。utf8.php

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

    3-4。php jis.php

    PHP 警告:输入中的意外字符:'' (ASCII=27) state=0 in /var/www/jis.php on line 3
    PHP Parse error: syntax error, unexpected '(' in /var/www/jis.php在第 3 行

于 2014-04-16T09:31:32.287 回答
0

它只是浏览器编码现在设置“iso-8859-1”。

于 2014-08-08T01:55:58.407 回答