2012-05-03 5 views
1

私は大量の情報を出力するデータベースを持っています。 私は現在、このデータベースを別のアプリケーションが読むためのXML形式に構築するPHPアプリケーションを構築しています。PHPとXMLの融合、特殊文字の正確な符号化

私はちょっと特殊文字がついています。データベースで
は、一部の文字が妙に印刷されています

Øはâ~
度がÂ私はPHPでのXMLファイルを書き込むためにfwriteのを()を使用しています°

なりになり、私がエラーだと思います何とかそこに住んでいる。

おそらく、これらの文字の出現がどこで発生しているかを検出し、適切に置き換えることによって、これを克服する方法が必要です。

私はPHPを使用していますが、これらの文字を個別に置き換える方法がわかりません。さらに重要なのは、それらをどのように置き換えるべきかわかりません!

誰かが助けることができますか?

+1

xmlとテーブルに使用する文字セットはどれですか。それらが同じであれば、望ましくない置換が起こらないようにする必要があります。 – Leri

+1

XMLはリンゴplistファイルなので、UTF-8ならUTF-8 –

+0

+1とまったく同じです。 – Cylian

答えて

3

ذ°

なり、ØなるUTF-8エンコードされた文字のように見えますが、いくつかの表示装置に渡され、ものをISO-8859-XまたはWindows-125Xエンコードされた文字であることを表示装置に語っています。

実際にUTF-8(デフォルトではXMLの標準エンコーディング)であることを表示デバイスに伝えます。

+0

前述のように、トップラインに表示されているリンゴplistファイルに出力しています: '<?xml version =" 1.0 "encoding =" UTF-8 "?>' 'fwrite($ fh、 utf8_encode($ output)); 'ファイルを書きます。私はどのようにこれ以上UTF-8を強制することができるだろうか分からない。 –

+0

はい、出力しています。しかし、出力が表示されるのは、それがUTF-8ではなく他の何かであることを確信しているからです。 **出力デバイスにUTF-8であることを伝えます**。さもなければ、出力デバイスがあなたが表示したいものや方法を推測するのに十分なほど巧妙であるとは思わないでしょう。 – hakre

+0

私のデータベースには '°'があり、 'fwrite($ fh、utf8_encode($ output) ')を使ってファイルに書き込まれると、 ); '、'° 'XMLがXコードで表示され、最後に' [NSString stringWithUTF8String] 'を使って変換した後でも、私のアプリケーションで'° 'です。私は文字列フォーマット指定子 '%s 'を使ってUTF8文字列として文字列をキャストしようとしました。 –