![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Golovastik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 389 Регистрация: 19.7.2009 Репутация: 1 Всего: 0 |
Прокоментируйте вот этот код, чего не очень ясен.
Добавлено через 1 минуту и 21 секунду Переменной под названием consoleEncoding мы присваиваем что? |
|||
|
||||
| SoulSeeker |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 21.7.2008 Репутация: нет Всего: 2 |
Текущую кодировку консоли системы. Это сообщение отредактировал(а) SoulSeeker - 3.1.2011, 18:30 |
|||
|
||||
| Golovastik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 389 Регистрация: 19.7.2009 Репутация: 1 Всего: 0 |
Обязательно ли конструктору getProperty передавать значение строковое consoleEncoding?
Это мы делаем из-за того что переменная типа Стринг названа consoleEncoding? Это сообщение отредактировал(а) Golovastik - 3.1.2011, 18:44 |
|||
|
||||
| SoulSeeker |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 21.7.2008 Репутация: нет Всего: 2 |
Это не конструктор, а статичный метод. Строка "consoleEncoding" - имя свойства виртуальной машины.
|
|||
|
||||
| Golovastik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 389 Регистрация: 19.7.2009 Репутация: 1 Всего: 0 |
То есть мы пишем строку: "consoleEncoding" не из-за того что переменная типа string названа также?
|
|||
|
||||
| SoulSeeker |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 21.7.2008 Репутация: нет Всего: 2 |
Нет, это просто считывание свойства по его названию. Например, как из ini файла. Тут может гуру java-машины подскажут, как там свойства хранятся.
|
|||
|
||||
| Golovastik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 389 Регистрация: 19.7.2009 Репутация: 1 Всего: 0 |
Это считывание свойства из класса System по его названию? то есть в классе System есть объявленное свойство с именем consoleEncoding в который передаётся значение кодировки через метод getProperty? Это сообщение отредактировал(а) Golovastik - 3.1.2011, 19:47 |
|||
|
||||
| mgarin |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 128 Регистрация: 19.8.2009 Где: Санкт-Петербург Репутация: 1 Всего: 3 |
Давайте с начала...
Через данный вызов, как уже было сказано, происходит считывание значения параметра "consoleEncoding". Пишите Вы конкретно "consoleEncoding" потому, что вам нужно узнать "кодировку консоли" (кэп, знаю). Например, если бы вам нужно было узнать версию Java-машины - вы бы сделали вот так:
Если вы вообще ничего не передадите как параметр (или пустой текст) Вы получите ошибку (еще при компилляции) или же проблемы при исполнении (в виде возврата null как результата, например). Откуда берется значение для указанного параметра? Ответ более чем полностью приведен в описании метода:
Добавлено через 2 минуты и 9 секунд Т.е. в итоге значение берется из некого системного хранилища/хранилища java-машины. Могу предположить, что при запуске jvm они все считываются в некую мапу и там хранятся до завершения работы. |
||||||
|
|||||||
| SoulSeeker |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 21.7.2008 Репутация: нет Всего: 2 |
Опять нет. Свойства не хранятся в коде. Они лежат вне программы - в виртуальной машине и ОС.
Вот тут кратко и понятно: http://www.herongyang.com/Java/System-JVM-...Properties.html Это сообщение отредактировал(а) SoulSeeker - 3.1.2011, 20:16 |
|||
|
||||
| Golovastik |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 389 Регистрация: 19.7.2009 Репутация: 1 Всего: 0 |
А это само свойство находится в классе System? Оно находится в этом классе,в него виндоус отправляет кодировку, которая потом извлекается методом getProperty? Скажите, а если ОС Линукс, как постатвить условие, что если например в ОС не установлена кодировка CP866 установить её?
Это сообщение отредактировал(а) Golovastik - 3.1.2011, 21:32 |
||||
|
|||||
| nc30 |
|
||||||||||
|
Интересующийся :) ![]() Профиль Группа: Участник Сообщений: 140 Регистрация: 24.6.2010 Где: Санкт-Петербург Репутация: 5 Всего: 8 |
Чтобы у вас не было путаницы, я поменял название переменной (смысл не изменился)
Golovastik, кстати, вывести полный список системных свойств довольно легко. Поместите в ваш код следующие строки:
Видимо, идея автора приведенного вами кода была в смене кодировки стандартного потока вывода на другую. Например, чтобы метод System.out.println() делал вывод в иной кодировке (значение которой, как предполагается, задано свойством с именем consoleEncoding).
У себя в WinXP я свойства с таким ключом не нашел. Поэтому в моем случае как-раз таки возвращается null. Может быть в Linux есть свойство с таким именем. Как проверить? См. выше про печать списка свойств. |
||||||||||
|
|||||||||||
| Golovastik |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 389 Регистрация: 19.7.2009 Репутация: 1 Всего: 0 |
Попробовал сделать русский ввод, не получается, только вывод русский, как сделать ввод ан русском языке?
Результат:
|
||||
|
|||||
| Temdegon |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 429 Регистрация: 11.10.2008 Где: Minsk Репутация: 7 Всего: 9 |
Потому что нужно указать кодировку ввода.
Какую именно кодировку указывать - я не знаю. Если запускаю из нетбинса, то все правильно отображает с такими настройками:
Если запустить из виндовой консоли - то отображает криво. Как ее правильно определить в рантайме, что бы работало везде и всегда - понятия не имею. Буду благодарен за подсказку. |
||||
|
|||||
| nc30 |
|
|||
|
Интересующийся :) ![]() Профиль Группа: Участник Сообщений: 140 Регистрация: 24.6.2010 Где: Санкт-Петербург Репутация: 5 Всего: 8 |
Спасибо Skipy за ряд хороших статей посвященных вводу-выводу, кодировкам и т. п.
Это сообщение отредактировал(а) nc30 - 6.1.2011, 07:58 |
|||
|
||||
| Golovastik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 389 Регистрация: 19.7.2009 Репутация: 1 Всего: 0 |
Вот так тоже не хочет, вводить русским в командной строке.
|
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |