Создайте файл, используя Cp1250 в Java

Я пытаюсь создать файл, используя набор символов Cp1250:

out = new BufferedWriter(
        new OutputStreamWriter(
        new FileOutputStream("/path/filename"), Charset.forName("Cp1250")));

Тем не менее, когда я обнаруживаю фактическую кодировку с помощью juniversalchardet, он говорит WINDOWS-1252, который является Cp1252 (согласно javadoc).

Энка (enca -L czech -g filename) обнаруживает ISO-8859-2.

Как я могу установить точно Cp1250 (или, используя имя API java.nio, windows-1250)?

Спасибо

Карел

1 ответ

Решение

Любая программа обнаружения кодирования может быть эвристической, только когда дело доходит до кодировок, которые в основном действительны для всех файлов (например, те, которые всегда имеют один байт на символ и имеют символ, сопоставленный с каждым байтом).

Вы должны закодировать некоторый текст, который, как вы знаете, может привести к различным результатам в Windows-1250 и Windows-1252, и посмотреть, что на самом деле делает ваш код. Я подозреваю, что вы обнаружите, что на самом деле все правильно.

Другие вопросы по тегам