Windows-1252和ISO-8859-1之间的桥差异

问题描述 投票:1回答: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错误。

请帮助。

scala encoding decoding iso-8859-1 windows-1252
1个回答
0
投票

这是不可能的。

Windows-1252中的某些字符在ISO 8859-1中不存在,因此将Windows-1252映射到ISO 8859-1是不可能。>>

© www.soinside.com 2019 - 2024. All rights reserved.