[PHP-users 30080] xsltprocessorで文字化け?

amaesc wish_amateur_escape @ yahoo.co.jp
2006年 8月 18日 (金) 21:50:33 JST


たびたび申し訳御座いません。

HTML文字列をtransformToXML関数に通したところ、全角文字が文字化けしてしま
います。

文字コードの指定などはどこですればよろしいでしょうか?

XSLファイルに直接書いた全角文字や外部XMLに書いた全角文字は正常に表示され
ます。
また、PHPソースから直接出力した全角文字も正常に表示されます。
phpのバージョンは5.1.4、libxslのバージョンは1.1.15です。

解決方法が見つからず途方にくれております。何卒ご教授のほどよろしくお願い
いたします。


---PHPソース--------
mb_language('Japanese');
mb_internal_encoding('utf8');
mb_detect_order('ASCII, JIS, UTF-8, EUC-JP, SJIS');

$html =<<< HTML
<html><body>あいう</body></html>
HTML;

$xml = new DomDocument('1.0');
$xml->loadHTML($html);
$xsl = new DomDocument('1.0');
$xsl->load('test.xsl');

$xh = new xsltprocessor();
$xh->importStyleSheet($xsl);
$output = $xh->transformToXML($xml);
---------------

---test.xsl----
<?xml version="1.0" encoding="utf-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform
">
    <xsl:output method="html" encoding="Shift_JIS" indent="no" omit-xml-
declaration="yes"/>
    <xsl:template match="/">
        <xsl:apply-templates/>
    </xsl:template>
</xsl:stylesheet>
---------------

---出力---
&#227;&#129;&#130;&#227;&#129;&#132;&#227;&#129;&#134;
----------
※これって1バイト圏のエンコードになっているでしょうか?


-- 
あまエスク
--------------------------------------
Let's start Yahoo! Auction  -  Free Campaign Now!
http://pr.mail.yahoo.co.jp/auction/


PHP-users メーリングリストの案内