2015-04-22 92 views
0

我從Wordpress中的表格中提取圖像URL。轉換'(')用於RSS網址

在數據庫中的URL看起來像:Power-behind-F1’s-winning-global-drive.jpg場是UTF8 Unicode的

當拔出來生成一個RSS feed它出來作爲Power-behind-F1’s-winning-global-drive.jpg

我可以將它與utf8_encode(htmlentities($url, ENT_QUOTES,'utf-8'))轉換爲HTML實體,產生Power-behind-F1’s-winning-global-drive.jpg。然而,這並不通過RSS驗證:

enter image description here

我覺得我已經試過各種組合函數utf8_encode /ヶ輛/用urlencode/mb_convert_encoding,我已經江郎才盡了!

+0

與一般相信,'函數utf8_encode()'是不是一個神奇的功能,解決了Unicode的問題。它僅僅將*從ISO-8859-1 *轉換爲UTF-8。你的數據是否使用ISO-8859-1?你如何精確地生成RSS? (我想你使用的是內置的WordPress的功能,但你不說,它明確)。 –

+0

場編碼是UTF8 Unicode的,我手拉這些值從數據庫中,並通過循環生成RSS養活自己。與Wordpress分開。 – Titan

回答

0

到目前爲止解決了

$imageUrl = urlencode($theRawUrl); 
$imageUrl = str_replace(array('%2F', '%5C'), "/", $imageUrl); 
$imageUrl = str_replace("%3A", ":", $imageUrl); 

毛,但它的工作原理...

編輯:

對我的另一種修正爲:

iconv("UTF-8", "ISO-8859-1//IGNORE//TRANSLIT", $content)

0

由於ISN 't代碼看我只能分享一些提示。

  • 現在UTF-8是事實上的標準。傳統應用程序是使用任何其他編碼的唯一原因,但似乎並非如此。堅持使用UTF-8,不用擔心轉換成任何其他編碼:這是毫無意義的,它只能毀掉你的數據。

  • 轉義始終是上下文相關的,而不是一個普遍的事實。除非您想破壞它,否則不要將隨機轉義函數應用於您的數據,直至其似乎正常工作。

  • 不要生成字符串連接XML:它不具備任何優勢,它可以最終產生畸形XML(因爲它的話)。 Let PHP do the hard work for you。 (如果不確定使用SimpleXML。)