我遇到了一個非常奇怪的錯誤。UTF-8字符串解碼破壞一個字符串,但不是另一個
我覈實,我的兩個字符串是UTF-8,但是當我嘗試在字符串中使用utf8_decode,將垃圾字符回到我(通過mb_check_encoding和mb_detect_encoding選中)。在這種情況下,我實際上不需要使用utf8_decode並且字符串將是正常的。
困難在於我有客戶使用UTF-8數據庫,我從中抽取字符串,並使用utf8_decode爲PHP定義字符串。如果我不把空格字符換成Ã。他們共享相同的代碼來生成字符串,但由於某種原因,當我爲其他客戶生成該字符串時,這些字符串出錯了。
有沒有一種方法可以讓我確認除了字符串是utf 8之外,我還需要使用utf8_decode?
一些例子:
Using utf8_decode for customer 1:
?0,107�per�km
Without utf8_decode for customer 1:
€0,107 per km
Using utf8_decode for customer 2:
$7.00 per km
Without utf8_decode for customer 2:
$7.00 per km
謝謝你們!
如果數據庫具有不一致的編碼數據,這就難怪你會看到類似的東西。 – Jon
感謝您的評論。客戶是國際化的,因此必須使用不同的編碼標準。 – infinityLoop
爲什麼?我們正在談論UTF-8,它可以容納所有這些。無論如何,如果他們的數據庫出於任何原因搞砸了......我不確定這個問題會是什麼。 – Jon