2012-02-15 10 views
1

私はæøåêèéのようなアクセント付きのXMLファイルを持っています。 freadを使ってファイルを読み込むだけで簡単にこれらの文字を読むことができますが、simplexml_load_stringまたはDOMDocumentを使用するとこれらの文字を読み取ることができません。PHPでJSONまたはXML形式のアクセント付き文字を読む

同じことが、私はjson_decode

私は、UTF-8および他の多くのエンコーディングが、何も作業ウィンドウ-1252に変更文字をmb_convert_encodingを使用して変更しようとしているを使用してみました、私のJSONファイルの場合です。 PHP 5.3.1を使用しています。私はそのようなcharcatersを読むデモコードを手伝って欲しい。 以下は、私が試した私の基本的なコードですが、それは

XMLファイル

<?xml version="1.0" encoding="windows-1252"?> 
    <note> 
    <message>Norwegian: æøå. French: êèé</message> 
    </note> 

PHPコード

$myFile = "check.xml"; 
    $fh = fopen($myFile, 'r'); 
    $theData = fread($fh, filesize($myFile)); 
    fclose($fh); 
    echo $theData."<br>"; 
    $xml = simplexml_load_string($theData); 
    print_r(mb_convert_encoding($xml->message,'Windows-1252')); 

答えて

1

が、これは

$fc = iconv('windows-1250', 'utf-8', file_get_contents(check.xml)); 
$handle=fopen("abc.xml", "rw"); 
fwrite($handle, $fc); 
fclose($handle); 

これで作業しようと試みる働いていませんでした上記の方法で書かれたファイル

+0

これを使用して書き込まれたファイルが正しくありません。まず第一に、最も重要なのは、アクセント付きの文字を破棄することです。 ノルウェー語:ćřĺ。フランス語:Ä™ 第2に、エンコーディングが正しくありません。元のXMLエンコーディングはwindows-1252なので、上記の方法でエンコーディングを変更しましたが、それでもアクセプト文字は破棄されます。 –

+0

@GunjanNigam: "check.xml"ファイルは "windows-1252"エンコーディングで書かれていますか?さもなければ、それは動かないでしょう(またはあなたのXMLの 'encoding =" windows-1252 "-partをファイルの実際のエンコーディングに変更しなければなりません)。 – vstm

関連する問題