[PHP-users 31188] Re: DomDocument->dump_file について

ucb.rcdtokyo ucb.rcdtokyo @ gmail.com
2007年 1月 3日 (水) 14:20:13 JST


DomDocument->dump_fileでは文字エンコーディングの指定ができないんですよねえ。一方、DomDocument->dump_memでは(iconvが利用可能なら)これができます。
なので、(入力が文字列/ファイルからでなければ)いったんdump_memで、文字エンコ指定で出力したものを、あらためてファイルに書き出すのが最も簡単な方法。

◎domxml(libxml2)の内部文字エンコはUTF-8で、日本語文字は原則UTF以外はNG。ただし、iconvが利用可能なら、文字エンコが特定されている場合、iconvを利用してその変換が試みられます。

◎domxml_open_mem/domxml_open_fileで、文字列/ファイルからDOMオブジェクトを作成する場合、文字列/ファイルにXML宣言部があり、そこにencodingが指定されていれば、その値が文字エンコとなります。

◎事前に文字エンコが特定されていない場合、dump_fileや、文字エンコ指定のないdump_memでは、非ASCII文字は数値文字参照に置換されて出力されます。

※確かにマニュアルには、このヘンのことはちゃんと書かれてない罠。

-- 
(It's always) Under Construction, Baby
http://www.rcdtokyo.com/ucb/


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