我在使用Scala进行字符编码时遇到麻烦。
我正在使用的Scala应用程序连接到Windows-1252编码的数据库
但是Scala应用程序的编码是ISO-8859-1
我无法更改这些编码。
因此,当从数据库中读取一行并开始在Scala代码中进行处理时,会出现一些未知且编码错误的字符。
设置系统file.encoding变量无效。
这几乎起作用并修复了某些字符,但不是全部:
new String(databaseStringValue.getBytes("ISO-8859-1"), "Windows-1252")
当我尝试这个时:
private val encoder: CharsetEncoder = Charset.forName("Windows-1252").newEncoder()
...
val cp1252Buffer = encoder.encode(CharBuffer.wrap(databaseStringValue))
我收到UnmappableCharacter错误。
请帮助。
这是不可能的。
Windows-1252中的某些字符在ISO 8859-1中不存在,因此将Windows-1252映射到ISO 8859-1是不可能。>>