Международный JRE6 или JDK6 или чтение файла в схеме кодирования "cp037" - PullRequest
1 голос
/ 25 мая 2010

Я пытался прочитать файл в схеме кодирования "cp037", используя JAVA. Я смог прочитать файл в базовых схемах кодирования, таких как UTF-8, UTF16 и т. Д ... После небольшого исследования в Интернете я узнал, что нам нужен charset.jar или международная версия JRE для поддержки расширенных схем кодирования , Может кто-нибудь прислать мне ссылку на международную версию JRE6 или JDK6. или есть ли лучший способ, чтобы я мог прочитать файл в схеме кодирования cp037.

P.S: cp037 - это схема кодировки символов, поддерживаемая мэйнфреймами IBM. Все, что мне нужно, это отобразить файл в Windows, который генерируется на компьютере IBM Mainframes, с использованием Java-программы.

Заранее спасибо за помощь ...: -)

Ответы [ 4 ]

1 голос
/ 21 сентября 2011

Как говорит Редди, иногда есть файл charsets.jar, но проблема все еще существует.

Единственное решение, которое я нашел, было добавить jar в системные библиотеки jre, используя функцию buildpath eclipse.

Изменение было сделано для версии Java по умолчанию для Windows.

Другой вариант - установить jdk вместо jre.

Некоторые информационные ссылки о схемах кодирования Java:

http://www.oracle.com/technetwork/java/javase/readme-142177.html

http://download.oracle.com/javase/6/docs/technotes/guides/intl/encoding.doc.html

1 голос
/ 25 мая 2010

Я нашел эту веб-страницу для Java 5 (обратите внимание, она может отличаться для Java 6). Не существует специальной, отдельной "международной" версии JRE или JDK; однако lib\charsets.jar может быть установлен или не установлен в вашей системе в зависимости от того, что поддерживает ваша операционная система.

Вы уверены, что в каталоге установки JRE нет charsets.jar? В моей системе это под %JDK_HOME%\jre\lib. (Примечание: НЕ под %JDK_HOME%\lib).

Найдите в своей системе, если у вас уже есть charsets.jar. (Обратите внимание, что он называется charsets.jar с символом s, а не charset.jar).

1 голос
/ 18 июля 2011

Вот немного другой код с Java 1.6 на WinXP, получающий текст из Mainframe через веб-загрузку:

String text = new String(data, 0, data.length, "Cp037");
text = text.replace('', 'a');
text = text.replace('Ý', '[');
text = text.replace('¨', ']');

Обратите внимание, что есть несколько символов, которые требуют особого внимания.

1 голос
/ 25 мая 2010

После небольшого исследования в Интернете я узнал, что нам нужен charset.jar или международная версия JRE для поддержки расширенных схем кодирования.

Вы уверены, что эта кодировка не включена в стандартный дистрибутив?

Этот код прекрасно работает на jdk 1.6.0_17 64bit (Windows):

Charset charset = Charset.forName("cp037");
BufferedReader br = new BufferedReader(new InputStreamReader(
    new FileInputStream(f), charset));

String line = null;
while ((line = br.readLine()) != null) {
    System.out.println("read line: " + line);
}
...