Здравствуйте,
Нашел тут Java аплет, который занимается тем, что читает новости из файла и выводит их ввиде бегущей строки в браузере (
http://www.microticker.com/cgi-bin/download/d.pl?NewsMaker). Всем он хорош, за исключением того, что русские буквы выводятся кракозябрами, т.е. не совсем кракозябрами, а именно буквы в аксантами, типа áóéù и пр..
Читает новости он из файла с помощью datainputstream.readLine() в массив String, а рисует строки с помощью drawString() ...
Подскажите пожалуйста, как с этим можно бороться? Исходный код я, в принципе, могу здесь поместить.
Я находил какие-то статьи про русификацию Java на CITforum, но то ли они действительно не должны были помочь в данной ситуации, то ли я в них ничего не понял
Спасибо,
Z.
Здравствуйте, ZYV, Вы писали:
ZYV>Здравствуйте,
ZYV>Нашел тут Java аплет, который занимается тем, что читает новости из файла и выводит их ввиде бегущей строки в браузере (http://www.microticker.com/cgi-bin/download/d.pl?NewsMaker). Всем он хорош, за исключением того, что русские буквы выводятся кракозябрами, т.е. не совсем кракозябрами, а именно буквы в аксантами, типа áóéù и пр..
ZYV>Читает новости он из файла с помощью datainputstream.readLine() в массив String, а рисует строки с помощью drawString() ...
ZYV>Подскажите пожалуйста, как с этим можно бороться? Исходный код я, в принципе, могу здесь поместить.
ZYV>Я находил какие-то статьи про русификацию Java на CITforum, но то ли они действительно не должны были помочь в данной ситуации, то ли я в них ничего не понял
При использовании методов работы со строками попробуй явно (вторым параметром) указывать русскую кодировку.
Саму Java русифицировать не нужно, так как внутри у нее все в юникоде.
... << RSDN@Home 1.1 beta 2 >>
Здравствуйте, mikkri, Вы писали:
M>При использовании методов работы со строками попробуй явно (вторым параметром) указывать русскую кодировку.
M>Саму Java русифицировать не нужно, так как внутри у нее все в юникоде.
Спасибо большое за совет! После вашего ответа я нашел статью о локализации приложений на сайте SUN и заменил в исходниках апплета
URLConnection urlconnection = (new URL(getCodeBase(), file)).openConnection();
DataInputStream datainputstream = new DataInputStream(urlconnection.getInputStream());
String s;
while ((s = datainputstream.readLine()) != null)
Script.addElement(s.trim());
на
URLConnection urlconnection = (new URL(getCodeBase(), file)).openConnection();
BufferedReader datainputstream = new BufferedReader( new InputStreamReader(urlconnection.getInputStream(), "Cp1251"));
String s;
while((s = datainputstream.readLine()) != null)
Script.addElement(s.trim());
После этого русские буквы стали нормально обрабатываться !!!
Но возникла следующая проблема — под JRE 1.4 всё отлично идет, а вот под MS JVM — говорит "Class not found" и не работает

Help!
Я компилирую через DJ Java Decompiler — всё работает, но не под MS JVM.
При компиляции вручную javac.exe ... ругается:
Exception in thread "main" java.lang.NoClassDefFoundError: NewsMaker/java
и ничего не компилит.
Здравствуйте, ZYV, Вы писали:
ZYV>Я компилирую через DJ Java Decompiler — всё работает, но не под MS JVM.
ZYV>При компиляции вручную javac.exe ... ругается:
ZYV>и ничего не компилит.
УРА!!!
Куда делась ошибка, которую выдавал javac.exe я не знаю, но после переустановки MS JVM, JRE и JDK и перекомпиления аплета с параметрами:
javac.exe NewsMaker.java -target 1.1 -O -g:none
Всё заработало просто прекрасно
Спасбо всем, надеюсь найденным мною метод русификации приложений кому-нито поможет — сам я просто обыскался.