powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Аргумент коммандной строки в KOI8_R how?
7 сообщений из 7, страница 1 из 1
Аргумент коммандной строки в KOI8_R how?
    #33826632
zirex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
такой код
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
     public   static   void  main(String arg[])  throws  Throwable {
        System.out.println("-- from file ");
        // просто выводим байты
        Test.print_stack(readBytes("/mnt/pstuff/koi8"));
        // читаем байты из потока
        System.out.println( new  String(readBytes("/mnt/pstuff/koi8")));
        
        System.out.println("-- from arg");
        // просто выводим байты
        Test.print_stack(arg[ 0 ].getBytes());
        System.out.println(arg[ 0 ]);
     }

т.к.
Код: plaintext
1.
2.
$ locale
LANG=en_US.UTF- 8 
а аргумент идет в KOI8, то говорю JVM использовать -Dfile.encoding=koi8-r

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
$ java -Dfile.encoding=koi8-r -classpath .:dist/test.jar Test `cat /mnt/pstuff/koi8`
-- from file
- 21  - 17  - 23   45   56 
КОИ- 8 
-- from arg
 63   63   63   45   56 
???- 8 

Почему из файла поток читается нормально, а из аргументов криво?
...
Рейтинг: 0 / 0
Аргумент коммандной строки в KOI8_R how?
    #33826748
BlackWall
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Потому что переменная окружения file.encoding определяет исключительно кодировку файла.
...
Рейтинг: 0 / 0
Аргумент коммандной строки в KOI8_R how?
    #33826841
zirex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackWallПотому что переменная окружения file.encoding определяет исключительно кодировку файла.ок. а как быть с аргументом?
...
Рейтинг: 0 / 0
Аргумент коммандной строки в KOI8_R how?
    #33826941
AciD_v
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zirexа как быть с аргументом?
Код: plaintext
1.
System.out.println(  new  String(arg[ 0 ].getBytes(), "koi8-r") );
...
Рейтинг: 0 / 0
Аргумент коммандной строки в KOI8_R how?
    #33827161
zirex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AciD_v zirexа как быть с аргументом?
Код: plaintext
1.
System.out.println(  new  String(arg[ 0 ].getBytes(), "koi8-r") );

не поможет - входящий поток уже испорчен.
...
Рейтинг: 0 / 0
Аргумент коммандной строки в KOI8_R how?
    #33828674
BlackWall
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как вариант, конвертировать на входе, т.е. в shell-скрипте или bat-файле
...
Рейтинг: 0 / 0
Аргумент коммандной строки в KOI8_R how?
    #33828983
zirex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пока придумалось так:
Код: plaintext
1.
2.
3.
4.
....
BufferedReader stdin =  new  BufferedReader( new  InputStreamReader(System.in));
String s = stdin.readLine();
....

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
#!/bin/sh
CMD="-Duser.language=ru -Duser.region=RU -Dfile.encoding=koi8-r -classpath .:dist/test.jar Test"
ARG=`cat /mnt/pstuff/koi8`

java $CMD $ARG <<EOF
$ 1 
EOF
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Аргумент коммандной строки в KOI8_R how?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]