2016-09-22 160 views
0

我有包括應寫入「米歇爾華」,但輸出爲「Michèle華」斯卡拉轉換2個字符集

根據此表形狀錯誤UTF-8字符串之間的字符串是Windows的之間的問題1252和UTF-8 http://www.i18nqa.com/debug/utf8-debug.html

如何進行轉換?

scala> scala.io.Source.fromBytes("Michèle HuÃ".getBytes(), "ISO-8859-1").mkString 
res25: String = Michèle Huà 

scala> scala.io.Source.fromBytes("Michèle HuÃ".getBytes(), "UTF-8").mkString 
res26: String = Michèle Huà 

scala> scala.io.Source.fromBytes("Michèle HuÃ".getBytes(), "Windows-1252").mkString 
res27: String = Michèle Huà 

謝謝

回答

2

你實際上並不具備完整的字符串還有,由於一個不幸的問題一個字符打印空白。編碼爲UTF-8但是作爲Windows-1252讀取的「MichèleHuà」實際上是「MichèleHuÃ」,其中最後一個字符是0xA0(但通常粘貼爲0x20,一個空格)。

如果您可以包含該字符,則可以成功轉換。

scala> fixed = new String("Michèle HuÃ\u00A0".getBytes("Windows-1252"), "UTF-8") 
fixed: String = Michèle Huà