[PHP-users 3530] Re: xml_parseを使う場合の XML ファイルの文字コード

Junichi Kuroki php-users@php.gr.jp
Wed, 14 Nov 2001 16:48:12 +0900


 黒木です。

> >  というわけで、ハンドラ内では UTF-8 から EUC に変換して使用すればいいという
> > 事になるのではないかと思います。
> 
> ハンドラ内ではEUCに変換するというところは、マニュアルにある、
> 「PHP におけるドキュメントの内部表現は、常に UTF-8でエンコードされます」
> という部分に反しませんか?

Parser で構文解析するところだけ UTF-8 にしておけば後はユーザが処理するのに
都合が良いエンコーディングにしておけば良いのではないかと思います。実際、ハンド
ラ内での処理は PHP が処理するのであって、すでにパーサの役目は終わった後ですし。

 PHP(プログラム) -> Parser -> PHP(ハンドラ)

> 黒木さんのやり方は、
> XMLのソースファイル(UTF-8)->ハンドラ内(EUC-JP)
> 
> ということのようですね。

いえいえ、XMLドキュメントは全部 EUC ですよ。

XML(EUC-JP) → [PHPで読み込み  EUC-JP > UTF-8   ] → 続く
               [SourceEncoding UTF-8  > 内部表現] → 続く
               <<<     Parser    構文解析     >>> → 続く
               [TargetEncoding 内部表現 > UTF-8 ] → 続く
               [ハンドラ内     UTF-8  > EUC-JP  ]

多分、流れでいうとこんな感じです。内部表現は UTF-8 なので
変換はスキップされてるんじゃないかと思います(憶測)

とりあえず、これでうまい事処理出来てます。

> そういえば、同じようにPHPDOMという独自のライブラリを公開している方が
> いらっしゃいますね。
> 
> PHPDOM入門
> http://www18.tok2.com/home/koumori27/xml/phpdom_menu.html

早速見てきました。ここのライブラリものすごくいいですね。
実現したいと思ってた機能も色々揃ってるのでかなり参考になります(^^)

> あと、domxmlについては、ここを見る限りでは今後しばらくは
> 機能拡張はあっても仕様の変更はなさそう、といえるのでしょうか。
> 
> PHP Function Table / Implementation & Documentation
> domxml extension (php4/ext/domxml)
> http://zugeschaut-und-mitgebaut.de/php/extension.domxml.html

とりあえず、domxml はしばらく様子見する事にしてます。仕事でこれを
使うと後で痛い目に会う事になったらちょっと嫌なので(^^;

(: )('')( :)(..)(: )('')( :)(..)(: )('')( :)(..)

  黒木淳一 : kuroki@mycc.co.jp
  P.S.R.C.  http://www.chamise.jp/mera/index.html

(..)( :)('')(: )(..)( :)('')(: )(..)( :)('')(: )