Разница мостов между Windows-1252 и ISO-8859-1 - PullRequest
1 голос
/ 04 октября 2019

У меня проблемы с кодировкой символов в 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.

Пожалуйста, помогите.

1 Ответ

1 голос
/ 04 октября 2019

Это невозможно.

В Windows-1252 есть символы, которых нет в ISO 8859-1, поэтому невозможно сопоставить Windows-1252 с ISO 8859-1.

...