02 авг 2007 18:28 | |
Сообщения:14
|
В чем может заключаться проблема с кодировкой русских букв при компилляции файла java
|
02 авг 2007 19:25 | |
Сообщения:1165
|
Ionhi:
В чем может заключаться проблема с кодировкой русских букв при компилляции файла java[/b]
http://javatalks.ru/ftopic276.php The meaning of life, universe and everything is 42! |
02 авг 2007 19:37 | |
Сообщения:14
|
ссылка не та..
Текст программы: class Test { public static void main (String s []) { System.out.println ("Привет"); } При компиляции и запуске выдает каракули |
02 авг 2007 19:57 | |
Сообщения:1165
|
каракули или ?
есть 3 варианта 1. вы сохранили ваш файл в не русской кодировке или не в UTF-8. 2. кодировка в вашем JVM неправильно установлена 3. ваша система не поддерживает русский если выдаются знаки ? - значит проблемма либо 1,2 если выдаются каракули - значит 2,3 как справляться наилучшим образом с этой проблеммой указанно по ссылке выше. The meaning of life, universe and everything is 42! |
03 авг 2007 12:21 | |
Сообщения:1184
|
Попробуйте перенаправить поток вывода в файл и посмотрите, что из этого выйдет:
java Test >result.txt Не знала Настя, где зад, где перёд. Показали - разобралась. |
03 авг 2007 14:58 | |
Сообщения:14
|
В файле русские буквы выдает, все ок. На консоли каракули
|
03 авг 2007 15:33 | |
Сообщения:40
|
У меня тоже такая фигня была, когда я в far набивал код. Тама по F8 кодировка меняется.
|
03 авг 2007 16:09 | |
Сообщения:3874
|
import java.io.OutputStreamWriter; import java.io.PrintWriter; public class WriteToWindowsConsoleExample { public static void main(String[] args) { try { PrintWriter rusOut = new PrintWriter(new OutputStreamWriter(System.out, "CP866"), true); rusOut.println("Привет!"); } catch ( Exception ex ) { ex.printStackTrace(); } } } |
03 авг 2007 16:34 | |
Сообщения:14
|
Запустила программу, на Консоли русские буквы!
т.е. теперь чтобы вывести на консоль русские буквы надо создавать класс PrintWriter? Возможны ли какие системные настройки помеять, прописать? |
03 авг 2007 16:52 | |
Сообщения:3874
|
Ключевое слово тут "CP866". В примере устанавливается кодировка, в которой винда выводит символы в консоль. По дефолту, Java использует кодировку UTF-8, а мы просто меняем кодировку вывода.
Ionhi:
Возможны ли какие системные настройки помеять, прописать?
Может и можно. Посмотрите System.getProperties(). |
04 сен 2007 18:31 | |
Сообщения:13
|
А я, знаю способ проще, хотя кому как. Итак, всё дело в том, что cmd (в ней-то всё и дело) использует кодировку MS-DOS. По этому, берём WordPad, вписываем туда русское сообщение (не програмный код, а только то, что выводим в консоль!), жмём сохранить как текстовый документ MS-DOS (имя надо прописать с расширением *.txt, иначе всё сохранится в *.rtf). Полученый документ открываем всё тем же WordPad'ом. На этот раз там будут крякозябры. Копируем их и переносим в программу:
System.out.println("крякозябры из WordPad'а"); Вот и всё! |
04 сен 2007 18:50 | |
Сообщения:1960
|
goshik:
... По этому, берём WordPad, вписываем туда русское сообщение (не програмный код, а только то, что выводим в консоль!), жмём сохранить как текстовый документ MS-DOS ...
Пример как делать не надо. :lol: |
04 сен 2007 19:55 | |
Сообщения:1960
|
goshik:
шкипер:
Пример как делать не надо. :lol: Это почему? Представь, что у тебя приложения на несколько тыщ строк кода, ты точно так же будешь открывать/сохранять/закрывать? Надо с самого начала учится правильному подходу к решению проблем, е не созданию костылей - потом не прийдется переучиваться. К тому же даже на ламерском уровне что проще - реализовать простенькую обертку в три строки для вывода в консоль с другой кодировкой или перелопачивание кучи строк кода с открытием/сохранением/закрытием WordPad'а? |