ivan 10.11.2010 06:17
Есть вопрос! — Русские символы не печатаются в одной из Java-программ
Эта программа - IHMC CmapTools (или CmapLite), служит для рисования концепт-карт (образцы тут и тут http://welinux.ru/post/3466/) (далее для краткости - CmapTools). Использую её уже давно, под W2k и ХР проблем с кодировкой не было. Под Linux (сперва Xandros (на базе Debian Etch), затем Ubuntu 10.04) почти при каждом запуске программы возникает проблема с вводом русских букв: они либо не вводятся совсем (чаще всего), либо вместо них возникают пустые квадратики, либо вообще - арабские буквы справа-налево (под Убунту ни разу не было такого). Проблема может иметь место сразу при запуске, а может - через полчаса.Другие программы, написанные на Java (FreeMind, OpenOffice, SweetHome3d), с русскими символами работают нормально.
Я так понимаю, проблема с русификацией конкретной копии Java, запускаемой программой CmapTools.
Поскольку мой бан на гугле давно истёк, были найдены следующие рецепты:
1) запускать java-программу под рутом
результат: не всегда помогает
2) поменять суффикс .utf8 на UTF-8 в файле /etc/environment
результат: нет там такого суффикса
3) добавить строку LANG=en_US.UTF-8 в запускающий скрипт (может, надо всё же ru_RU???)
результат: я нашёл в скрипте какой-то отрывок из нескольких строк, проверяющий кодировку и что-то там выставляющий, поставил после него строчку LANG=ru_RU.UTF-8, но изменений не заметил. Может, надо его закомментить вообще?
Пока писал, нашёл ещё один рецепт: "поменять шрифт в программе", но пока не могу его попробовать.
При последней переустановки вообще не вводились ни русские, ни латинские символы, а только цифры и LATINSKIE BUKVY при нажатом .
P.S. Пока установил Win-версию в Wine, работает с русскими символами нормально. Но это, разумеется, не труЪ.
ок, попробую вечером (дома интернета не будет до января, что очень неудобно при возникновении подобных вопросов)
(не туда сперва ответил)
1) каталог /usr/share/X11/locale/ru_RU.UTF-8 содержит файл Compose, состоящий из 1 строчки
include "/usr/share/X11/locale/en_US.UTF-8/Compose"
2) /usr/lib/X11/locale/ru_RU.UTF-8 не содержит файла Compose
3) каталог /usr/share/X11/locale содержит файл compose.dir, в котором перечислены несколько кодировок, вида:
iso8859-1/Compose af_ZA.ISO8859-1
никаких ru_RU нет, может, надо добавить что-то вроде
iso8859-1/Compose ru_RU.UTF-8
4) после переустановки программы вводятся только русские символы, а латинские нет.
5) при запуске программы выскакивает сообщение:
Warning: Cannot convert string "-b&h-lucidasans-medium-r-normal-sans-*-140-*-*-p-*-iso8859-1" to type FontStruct
Чувствую, что "истина где-то рядом", но не хватает понимания, что откуда берётся. Нетбук взял с собой на работу, чтобы сразу можно было проверить решения.
1) каталог /usr/share/X11/locale/ru_RU.UTF-8 содержит файл Compose, состоящий из 1 строчки
include "/usr/share/X11/locale/en_US.UTF-8/Compose"
2) /usr/lib/X11/locale/ru_RU.UTF-8 не содержит файла Compose
3) каталог /usr/share/X11/locale содержит файл compose.dir, в котором перечислены несколько кодировок, вида:
iso8859-1/Compose af_ZA.ISO8859-1
никаких ru_RU нет, может, надо добавить что-то вроде
iso8859-1/Compose ru_RU.UTF-8
4) после переустановки программы вводятся только русские символы, а латинские нет.
5) при запуске программы выскакивает сообщение:
Warning: Cannot convert string "-b&h-lucidasans-medium-r-normal-sans-*-140-*-*-p-*-iso8859-1" to type FontStruct
Чувствую, что "истина где-то рядом", но не хватает понимания, что откуда берётся. Нетбук взял с собой на работу, чтобы сразу можно было проверить решения.
1) каталог /usr/share/X11/locale/ru_RU.UTF-8 содержит файл Compose, состоящий из 1 строчки
2) /usr/lib/X11/locale/ru_RU.UTF-8 не содержит файла Compose
3) каталог /usr/share/X11/locale содержит файл compose.dir, в котором перечислены несколько кодировок, вида:
никаких ru_RU нет, может, надо добавить что-то вроде
4) после переустановки программы вводятся только русские символы, а латинские нет.
5) при запуске программы выскакивает сообщение:
Чувствую, что "истина где-то рядом", но не хватает понимания, что откуда берётся. Нетбук взял с собой на работу, чтобы сразу можно было проверить решения.
include "/usr/share/X11/locale/en_US.UTF-8/Compose"
2) /usr/lib/X11/locale/ru_RU.UTF-8 не содержит файла Compose
3) каталог /usr/share/X11/locale содержит файл compose.dir, в котором перечислены несколько кодировок, вида:
iso8859-1/Compose af_ZA.ISO8859-1
никаких ru_RU нет, может, надо добавить что-то вроде
iso8859-1/Compose ru_RU.UTF-8
4) после переустановки программы вводятся только русские символы, а латинские нет.
5) при запуске программы выскакивает сообщение:
Warning: Cannot convert string "-b&h-lucidasans-medium-r-normal-sans-*-140-*-*-p-*-iso8859-1" to type FontStruct
Чувствую, что "истина где-то рядом", но не хватает понимания, что откуда берётся. Нетбук взял с собой на работу, чтобы сразу можно было проверить решения.
Для примера, если локаль ru_RU.UTF-8, сделай:
touch /usr/share/X11/locale/ru_RU.UTF-8/Compose