2011-05-03 74 views
1

我正在使用simplexml來讀取utf-8 XML源的內容。轉換PHP轉義碼

源代碼中包含轉義字符像法國E. ..

15 THE AVENUE EXAMPLE CLÉMENCEAU 

而且我將其保存到這樣一個變量:

$shipping_street1 = (string) $order->{'shipping-address'}->address1; 

這工作正常,但法國Ë得到修改爲:

15 THE AVENUE EXAMPLE CLÉMENCEAU 

而且我需要將值寫入普通的舊文本文件。我雖然想用普通的E代替文本,但認爲必須有更好的解決方案。任何幫助表示讚賞:)

+0

使用什麼字符編碼的普通舊文本文件? – Gumbo 2011-05-03 12:41:09

+0

您能否澄清一下:將法語E保存到文本文件時,法語E是否會發生重大變化,或者將其調出來進行調試? – 2011-05-03 13:01:07

+0

@Gumbo嗯,UTF-8我認爲 – user736129 2011-05-03 14:19:28

回答

2

的事實,即非ASCII字符「É」是被輸出到2個字節意味着它已經使用UTF翻譯(而頁面中,你都顯示出來,非常有可能,有通過ISO-8859-X字符集編碼):防止這種情況,你可能會改變你的指令:

$shipping_street1 = (string) $order->{'shipping-address'}->address1; 

到:

$shipping_street1 = 
    utf8_decode((string) $order->{'shipping-address'}->address1); 

(手動此處http://docs.php.net/manual/en/function.utf8-decode.php

+0

剛剛測試過,效果很好。謝謝您的幫助 :) – user736129 2011-05-03 14:24:13