PHPのxml_parse()が文字化けする場合の対策
genki
genki
ATOMRSS
  • ソースコードID: 262
  • 登録日時: 2007/08/21 19:21
  • 最終更新日時: 2007/08/24 10:01
  • アクセス数: 2028
  • タグ:  php xml 文字化け
  • codeなにがしブックマークに追加する 0 users
  • このページを del.icio.us に追加
  • このページをはてなブックマークに追加
  • GoodJob
  • 3

GJGJGJ

説明

xml_parse()に渡すデータがちゃんとUTF-8であっても、php.iniでmbstring.internal_encoding EUC-JPに設定している場合などには、xml_parse()した結果が文字化け(というか単なる?????の羅列で、文字ですら無い状態)することがあります。

この場合、

xml_parser_create('UTF-8')

のように明示的にエンコーディングを指定してやることで、正しく処理されるようになります(現象を確認したのは Debian Sarge の PHP 4.3 です。未確認ですが、PHP の場合には、そもそも文字化けしないかもしれません)。

自分の場合は、WordPress で mcRSSlist プラグインを使う時に、この地雷を踏みましたが、wp-includes/rss.php の xml_parser_create() 行を以下のように修正することで、回避できました。

$parser @xml_parser_create('UTF-8');

xml_parser_create
http://au.php.net/manual/en/function.xml-parser-create.php

mcRSSlist
http://matopc.myvnc.com/archives/2005/05/03/mcrsslist/

ソースコード

コメント

前へ 1 次へ

プレゼン公開・共有サイト handsOut.jp チーム・マイナス6% - みんなで止めよう温暖化

ソースコードのブログパーツ

デフォルトのフォントサイズ
修飾
表示サイズ
px px
プレビュー (表示する)
下のプレビュー領域をクリックすると、ポップアップで全体を見ることができます。
パラメータが不正です

    GoodJobしたユーザ

    ブックマークコメント

    関連するなにがし

    前へ 1 次へ

    タグ

    raketime machineイベントログfilesystemobjectdeveloperprogrammingprimenumberflexriatagged電卓分数逆ポーランド記法ポーランド記法jaxbdyndnsarraylistdeepcopyディープコピーobjectoutputstreambytearrayoutputstreamobjectinputstreambytearrayinputstreamiterator複数チェックボックスmultibytexencentos文字エンコーディングinit_connectcharacter-set-servercollation-serverdefault-character-setヘルパーメソッド動的メソッド呼び出しf:labelwsse2重登録防止prototype.js位置positionedoffsetscrolltoスクロールpositionlink_tocyclecheck_box_tagチュートリアルactive_formerror_messages_forハイライトバリデーションvalidate便利リストデコレーションメールデコメ非対応機種tilestext_field_tag一括複数情報etherealrtphexテキストデータ抽出validwhenリセット一括更新plop置換replacepcoslogmixisregソケットnet::telnetfopenmutexサンプルcalendar[linux][bash][シェルスクリプト][大容量]mobilerorrails2.1クリップボードclipboard横向きピラミッドs2jdbc-genjsonicお絵かきフルパス名抽出サブドメインサブドメイン名s2jdbc自動生成エンティティxhtml

    前へ 1 2 3 ... 8 次へ