2012-02-15 117 views
1

我有一個XML文件,其中包含重音字符,如æøåêèé。如果我使用fread簡單地讀取文件,我可以輕鬆讀取這些字符,但如果使用simplexml_load_string或DOMDocument,我無法讀取這些字符。從PHP中讀取JSON或XML格式的重音字符

同樣是我的JSON文件,其中我使用json_decode

我一直在使用mb_convert_encoding和改變改變字符窗口-1252,UTF-8和許多其他的編碼,但沒有工作試圖審理案件。 我正在使用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

使用此文件寫入的文件不正確。首先,最重要的是它會銷燬重音字符。挪威語:ćřĺ。法文:其次,編碼不正確。原始的XML編碼是windows-1252,所以我改變了上面的方法中的編碼,但仍然有人加入的字符被破壞 – 2012-02-15 07:11:02

+0

@GunjanNigam:你確定「check.xml」文件是用「windows-1252」編碼寫的嗎?否則它將無法工作(或者你必須將xml的'encoding =「windows-1252」'部分改爲文件的實際編碼)。 – vstm 2012-02-15 07:21:39