0
我一直在使用XML API進行字符編碼時出現問題,而且似乎無法解決問題。我想知道是否有人會知道如何去做這件事。我已經嘗試了以下幾段代碼,它們都產生了一些奇怪的字符編碼問題。使用XML和PHP進行字符編碼問題file_get_contents
守則#1
$xml_url = "http://myurl.com/123.xml";
$xml = simplexml_load_file($xml_url);
守則#2
$xml_url = "http://myurl.com/123.xml";
$contents = file_get_contents($xml_url);
$xml = new SimpleXMLElement($contents);
的方式,一些字符,例如撇號出來都是這樣
strengthening resumés
有數以百計與此有關的錯誤。我的代碼的頂部看起來像這樣
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
我試着刪除它,以及把它作爲HTML 5,我似乎無法得到任何東西。我嘗試了其他拉丁字符編碼等,它變得越來越糟。有沒有人有任何想法如何解決這個問題?
感謝您的回覆。我對char編碼知識的缺乏表示歉意,但我會在哪裏使用utf8_encode?它會在內部的實際XML值(即$ xml-> thisValue)還是實際的URL本身? – 2013-02-19 19:49:02
好的。我看起來有一半。我能夠使用utf8_decode()更改爲é,但是,當存儲在mysql中時,撇號會出現這樣的其他編碼問題:' – 2013-02-19 20:03:58
@SamOh這是相同的問題:捲曲當用ISO-8859-1文本查看時,用UTF-8編碼的撇號看起來像「’」。確保在連接到數據庫時使用正確的編碼設置。如果需要,對所有接收/存儲到數據庫的文本使用解碼或編碼功能。將所有內容(輸入,輸出,數據庫,文件存儲)保存爲Unicode是避免字符集轉換以及與之相關的問題的好方法。 – jasso 2013-02-19 22:44:58