Windows-1252 和 ISO-8859-1 之间的桥梁区别

Bridge difference between Windows-1252 and ISO-8859-1

我在 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。