Кодирование от 1252 до эквивалента Unicode .NET в java

У меня есть запрос на перенос веб-службы .NET на java. Мне нужно найти эквивалентный java-код для этого фрагмента кода, написанного на .NET:

byte[] b = ... // Some file binary data.
byte[] encoded = System.Text.Encoding.Convert(System.Text.Encoding.GetEncoding(1252), System.Text.Encoding.Unicode, b);

Заранее спасибо!


person Nicola    schedule 15.12.2011    source источник


Ответы (2)



person    schedule
comment
Или UTF-8 для типичных случаев использования. - person Christian Schlichtherle; 15.12.2011
comment
Никола явно запросил System.Text.Encoding.Unicode, то есть UTF-16. - person jarnbjo; 15.12.2011
comment
Да, я пробовал с новой строкой (b, Cp1252).getBytes(UTF-16LE); но, к сожалению, это не работает. Байт [] содержит файл PDF, я вижу, что байты, преобразованные из .NET, и байты из java одинаковы в начале файла (% PDF...), но как только двоичная часть файл начинается с большого количества байтов. - person Nicola; 15.12.2011
comment
@Nicola: вы не можете выполнять преобразование набора символов для произвольных двоичных данных (например, документа PDF). Это будет работать, только если b содержит текст в кодировке Cp1252. - person jarnbjo; 15.12.2011
comment
@jarnbjo: Я думаю, вы правы, возможно, я делаю это неправильно, я задам новый вопрос, чтобы подробно объяснить, чего я пытаюсь достичь. Спасибо. - person Nicola; 16.12.2011