Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java tools & IDE's > Русские символы в Windows И Linux


Автор: RockClimber 28.4.2010, 08:17
Коллеги, подскажите...
Начал изучать язык неделю назад, поставил Eclipse (осознанного выбора не было, ставил наугад, потому что название понравилось).
Получилось так, что начал писать проект в винде, а потом захотелось перенести в Linux. Запустил Linux, поставил Eclipse из репозитория, открыл проект и увидел крякозябры вместо русских букв...

Еще нашел вот http://forum.vingrad.ru/topic-252679.html тему:
Цитата(mrv00 @  26.3.2009,  19:35 Найти цитируемый пост)
1) По документации jdk от sun, encoding  utf8 в линуксе не поддерживается.
 smile Я в шоке, если честно. Даже в Lazarus (опенсорсный клон Delphi), который разрабатывают три с половиной калеки, с русскими символами не так все плачевно...
Или я чего-то не понимаю?

Автор: powerOn 28.4.2010, 12:55
Сохраняй везде в UTF-8 и открывай в нем же.

Автор: LSD 28.4.2010, 14:31
Цитата(RockClimber @  28.4.2010,  09:17 Найти цитируемый пост)
По документации jdk от sun, encoding  utf8 в линуксе не поддерживается.

Брехня. 
1. UTF-8 это одна из кодировок, которые по стандарту поддерживается на всех платформах.
2. GUI компоненты работают с UTF-16, т.к. именно в ней хранятся char-ы.

Автор: jk1 28.4.2010, 14:54
Цитата

GUI компоненты работают с UTF-16, т.к. именно в ней хранятся char-ы. 

Это не utf-16, а как навызваемый modified utf-8:
Цитата

In Modified UTF-8 the null character (U+0000) is encoded as 0xC0,0x80 rather than 0x00; 0xC0,0x80 is not valid UTF-8 because it is not the shortest possible representation. Modified UTF-8 strings will never contain any null bytes, which allows them (with a null byte added to the end) to be processed by the traditional ASCIIZ string functions, yet allows all Unicode values including U+0000 to be in the string.

All known Modified UTF-8 implementations also treat the surrogate pairs as in CESU-8.

Автор: RockClimber 29.4.2010, 21:42
В общем и целом разобрался, осталось дело за малым...
В Eclipse под Windows в настройках я могу указать либо "inherits from container (win1251)", либо одну из разновидностей юникода. Соответственно, если я выбираю юникод, то весь текст в проекте, сохраненный в win1251, открывается как юникод и выглядит ужасно. А в linux я не могу открыть текст как win1251, потому что там такой опции нет. Т. е.  в итоге я могу писать новый текст в юникоде, а уже написанный сконвертировать не могу...
Видел настройки в нескольких местах (меню "File", "Edit", "Project"), но они все работают одинаково.
Что делать?

Автор: jk1 29.4.2010, 22:30
Уже написанный можно открыть в CP1251 и пересохранить в Unicode. С этим любой текстовый редактор справится.

Автор: RockClimber 29.4.2010, 22:52
Ну собственно так и сделал... Я думал, может Eclipse сам умеет...
Всем спасибо за помощь.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)