У меня следующая задача: текст на смешанном латинско-арабском языке, написанный в UTF-8, нужно преобразовать для печати на POS-принтере, который использует древний однобайтовая кодовая страница 864.
text.getBytes("ibm-864")
внезапно показывает много вопросительных знаков вместо арабских символов, и, покопавшись в коде, я понял, что в таблице преобразования есть несколько разных версий арабских символов, используемых для сопоставления с ibm-864 (где-то в диапазоне FExx, а не 06xx, который у меня есть в моем текст).
Я ищу некоторый код или библиотеку, которая может конвертировать арабский юникод в cp864, предпочтительно отображая соответствующие формы арабских символов (в cp864 есть изолированные, начальные, средние и конечные формы для некоторых символов) и, возможно, даже обрабатывать реверс для RTL, потому что я сомневаюсь, что аппаратное обеспечение поддерживает его автоматически.
Я понимаю, что это очень специфическая задача, но почему бы не попробовать? Также я знаю, как это реализовать, но пытаюсь найти готовый к использованию велосипед :)
Кто-нибудь?
Другое возможное решение: библиотека, которая может переводить арабский юникод из диапазона U+0600 - U+06FF Arabic
в диапазон U+FE70 - U+FF6F Arabic Presentation Forms-B
. Тогда я могу безопасно получить свои байты в cp864. Кто-нибудь видел что-нибудь похожее?