Обычная версия
Java форум JavaTalks
форум программистов

Поиск   Пользователи   Группы   Регистрация 
 Профиль   Личные сообщения 

 Вход 

Немогу создать ResourceBundle
Список форумов
 ->  Локализация (l10n & i18n)


На страницу Пред.  1, 2 
Начать новую тему 
Предыдущая тема :: Следующая тема  
Автор Сообщение
шкипер : 1960
Java Developer
Откуда: Харьков

СообщениеИюл 10, 2008 10:10 
Ответить с цитатой
Есть классический текст. Могу похвалиться - я даже немного соавтор (исправил аж одну грамматическую ошибку Wink )

http://www.jug.ru/servlets/index?page=rus#files

Но он немного устарел - с 1.5 PrintStream позволяет указать кодировку потока. Потому я рекомендую сделать так:

Код:
  public static void main(String[] args) throws Exception {
   System.setOut(new PrintStream(System.out, true, "Cp866"));
   System.setErr(new PrintStream(System.err, true, "Cp866"));
...

Если программа потенциально будет работать не только в Windows - необходимо дописать проверку операционки.
_________________

aka ur6lad
К началу Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Louis : 222
Новичок

СообщениеИюл 10, 2008 10:47 
Ответить с цитатой
шкипер писал(а):
Есть классический текст. Могу похвалиться - я даже немного соавтор (исправил аж одну грамматическую ошибку Wink )

http://www.jug.ru/servlets/index?page=rus#files

Но он немного устарел - с 1.5 PrintStream позволяет указать кодировку потока. Потому я рекомендую сделать так:

Код:
  public static void main(String[] args) throws Exception {
   System.setOut(new PrintStream(System.out, true, "Cp866"));
   System.setErr(new PrintStream(System.err, true, "Cp866"));
...

Если программа потенциально будет работать не только в Windows - необходимо дописать проверку операционки.



Evil or Very Mad Пишу в точности как Вы предложили:

Код:
System.setOut(new PrintStream(System.out, true, "Cp866"));
   System.setErr(new PrintStream(System.err, true, "Cp866"));


и ничего... Козявки стали другие:
Цитата:
‘¨á⥬  †¨«¨é­®-ª®¬¬ã­ «ì­®£® å®§ï©á⢠
1. ‚®©â¨
2. ‚ë室


Локаль русская... ну что же не так???
К началу Посмотреть профиль Отправить личное сообщение
шкипер : 1960
Java Developer
Откуда: Харьков

СообщениеИюл 10, 2008 11:10 
Ответить с цитатой
Очень простой тест:

Имеем файл test.properties c таким содержимым:
Цитата:
test.property=\u0442\u0435\u0441\u0442 - \u043e\u043d \u0438 \u0432 \u0410\u0444\u0440\u0438\u043a\u0435 \u0442\u0435\u0441\u0442


и класс
Код:
import java.io.PrintStream;
import java.util.Locale;
import java.util.ResourceBundle;

public class TestConsoleEncoding {

   public static void main(String args[]) throws Exception {
      Locale current = Locale.getDefault();
      ResourceBundle bundle = ResourceBundle.getBundle("test", current);
      System.out.println("АаБбВвГг");
      System.out.println(bundle.getString("test.property"));
      System.setOut(new PrintStream(System.out, true, "Cp866"));
      System.setErr(new PrintStream(System.err, true, "Cp866"));
      System.out.println("АаБбВвГг");
      System.out.println(bundle.getString("test.property"));
   }

}


И скомпилированный класс и файл свойств должны лежать в одном каталоге.

Запускаем:
Код:
C:\myclasses>java -cp . TestConsoleEncoding
└р┴с┬т├у
ЄхёЄ - юэ ш т └ЇЁшъх ЄхёЄ
АаБбВвГг
тест - он и в Африке тест


Тест пройден.

Резюме: то ли переустановка вывода на консоль не делается, то ли вывод делается в обход класса System.out. Вы случайно не через java.io.Console пишите?
_________________

aka ur6lad
К началу Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Louis : 222
Новичок

СообщениеИюл 10, 2008 11:44 
Ответить с цитатой
Цитата:
Очень простой тест:


Незнаю что думать....

у меня вышло
Цитата:
ÀàÁáÂâÃã
òåñò - îí è â Àôðèêå òåñò
€ �¡‚¢ƒ£
â¥áâ - ®­ ¨ ¢ €äਪ¥ â¥áâ



Скопировал Ваш код в созданный проект в netBeans.
К началу Посмотреть профиль Отправить личное сообщение
шкипер : 1960
Java Developer
Откуда: Харьков

СообщениеИюл 10, 2008 11:52 
Ответить с цитатой
Louis писал(а):
у меня вышло
Цитата:
ÀàÁáÂâÃã
...
€ �¡‚¢ƒ£
...

То, что скомпилированный код (я имею ввиду строку "АаБбВвГг") выводит неправильный текст ПМСМ говорит что у вас неправильные параметры компиляции исходников: где-то или указан неправильный encoding исходников или он не указан, а java берёт по дефолту локаль, которая совсем не ru_RU.cp1251 (например у вас американская винда с en_US.ISO-8859-1). Или java берет правильно (cp1251), но исходники у вас в юникоде ( UTF-8 ).

Что же касается строчки из ResourceBundle ... даже не знаю что сказать.

Update:
что написано в системном свойстве file.encoding?
_________________

aka ur6lad
К началу Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Louis : 222
Новичок

СообщениеИюл 10, 2008 12:16 
Ответить с цитатой
Цитата:
что написано в системном свойстве file.encoding?


Как его посмотреть??

в encoding проекта - UTF-8


UPD:

разобрался

Cp1251

И вот еще что:

Я перезапустил NetBeans и картина поменялась:

Цитата:
АаБбВвГг
тест - он и в Африке тест
Ђ ЃЎ‚ўѓЈ
вҐбв - ®­ Ё ў ЂдаЁЄҐ вҐбв



до
Код:
System.setOut(new PrintStream(System.out, true, "Cp866"));
      System.setErr(new PrintStream(System.err, true, "Cp866"));


пишет на русском - потом на козявочном
К началу Посмотреть профиль Отправить личное сообщение
Louis : 222
Новичок

СообщениеИюл 22, 2008 2:14 
Ответить с цитатой
UPD

При запуске из netBeans упорно пишет козявками.

Если запускать из коммандной строки - все замечательно!


В чем же дело?
К началу Посмотреть профиль Отправить личное сообщение
шкипер : 1960
Java Developer
Откуда: Харьков

СообщениеИюл 22, 2008 8:09 
Ответить с цитатой
Подозреваю, что у нетбинса своя консоль. И кодировка там совсем не 866. Да?
_________________

aka ur6lad
К началу Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Louis : 222
Новичок

СообщениеИюл 22, 2008 11:25 
Ответить с цитатой
шкипер писал(а):
Подозреваю, что у нетбинса своя консоль. И кодировка там совсем не 866. Да?


Embarassed Embarassed Embarassed

ответ бы в Вашем посте :
Цитата:
что написано в системном свойстве file.encoding?


и моем ответе:
Цитата:
Cp1251
К началу Посмотреть профиль Отправить личное сообщение
Golovastik : 43
Новичок

СообщениеЯнв 08, 2011 20:58 
Ответить с цитатой
Ребята, как сделать именно ВВОД на русском?
Именно ВВОД
К началу Посмотреть профиль Отправить личное сообщение
 
Начать новую тему  Ответить на тему
Страница 2 из 2
На страницу Пред.  1, 2
Список форумов
 -> Локализация (l10n & i18n)


 
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Java and all Java-related trademarks and logos are trademarks or registered trademarks of Oracle Corporation in the United States and other countries.
Это сайт не относится к фирме Oracle Corporation и не поддерживается ею.

© 2006-2010 www.javatalks.ru: форум java программистов
Используется скрипт phpBB © 2001, 2010 phpBB Group

Хостинг от bizname.ru