2016-09-22 162 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à