Любая бесплатная библиотека Java для кодирования из Unicode в CP866?
Я пытаюсь распечатать на устройстве, которое поддерживает только кодировку CP866.
К сожалению, устройство, с которого я печатаю (устройство Android), не поддерживает CP866, в результате чего "abc".getBytes("CP866")
бросая UnsupportedEncodingException
,
Итак, я думаю, я должен сделать Unicode
в CP866
кодирую себя Есть ли бесплатная библиотека Java, которая делает это?
4 ответа
http://msdn.microsoft.com/en-us/goglobal/cc305166 содержит список символов; если не сработает заранее подготовленный параметр, написание кода для перебора массива, переводящего символы Юникода в байты, подходящие для CP866, не должно занимать много времени.
Согласно документации Oracle, Cp866 является поддерживаемой кодировкой для Java 7. Так что либо
- вы используете старую версию Java, которая не поддерживает Cp866 (например, см. комментарий @Joachim!!!), или
- среда выполнения Java не распознает имя, которое вы используете. (Каноническое имя для кодировки
"Cp866"
не"CP866"
.)
ОБНОВЛЕНИЕ - вряд ли будет последним. Из того, что я могу понять из источника, механизм поиска кодировки, используемый стандартным "провайдером", нечувствителен к регистру.
Рекомендации:
Класс java.nio.charset.Charset
поддерживает как Cp866, так и, конечно, Unicode. Я думаю, вы могли бы использовать это с encode
а также decode
методы.
Мне нужно было кодировать строку с Cp866 в Android. Вы можете использовать библиотеку Java с составленными классами charset. Cp866 среди них.
Если вы хотите расширить класс Charset и добавить свой собственный Charset: Java NIO. Глава 6 Наборы символов