2010-05-10 33 views
5

因此,例如,這會將1251轉換爲utf-8。如何使用Iconv將任何可能的格式轉換爲UTF-8?

$utf8 = iconv('windows-1251', 'utf-8', $ansi); 

但是如何將未知(當它涉及到我們,我們還不知道它是什麼格式)(一般任意)格式(可能由語言Iconv知道)爲UTF-8? (代碼示例)

+0

在http://www.php.net/manual/en/function.utf8-encode.php#97533上的評論中有很多關於如何實現這個 – Mark 2010-05-10 22:02:16

回答

8

您無法從未知字符集進行翻譯,您可以做的最好是猜測實際字符集並將該猜測用作第一個參數 - 您可以使用mb_detect_encoding()作爲此目的。

+0

的方法,請你舉一些關於如何實現的代碼示例去做吧? – Rella 2010-05-10 22:02:17

+3

mb_detect_encoding僅限於UTF-8和UTF-7,ASCII和一組日文字符集。它在一般情況下不起作用,並且不能,因爲對於單字節字符集沒有辦法做到這一點 - 它需要瘋狂的上下文分析,並且這不可行。如果您需要支持任意字符集,則需要提供給您的信息 - 或者如果未提供輸入並且尚未使用UTF-8,請定義一個合理的回退。 – 2010-05-10 22:06:08

+0

mb_detect_encoding()只是瘋狂猜測。它只適用於具有良好模式的編碼,如UTF-8。它無法區分ANSI和Latin-1。 – 2010-05-10 22:10:30

-14

我寫了一個數組與字符串的值。你只需要這樣做:

$string = str_replace("â€Å「","",$string); 
$string = str_replace("â€Â","",$string); 

他們走了!

+1

-1不,這不是真正的轉換爲UTF8。 – hexafraction 2013-08-11 18:34:39

相關問題