[Кросспост][Шаманство]Чем отличается винда английская от винды русской
как КО отвечу - с дефолтной локалью
см выше, дефолтная локаль автоматом была заменена вместе со сменой региона на Россию, без её смены другое место глючило
2) Закинь скрины региональных параметров.
3) Какие именно крякозябры и в каком месте?
2. В региональных опциях всё идентично - стандартные настройки для россии
3. РљСЂРёРєРѕР·СЏР±СЂС‹
в месте, где строковые константы берутся не из юникодных .xml файлов, а из юникодных .class файлов
РљСЂРёРєРѕР·СЏР±СЂС‹А что тут непонятного?
это не так.
А что тут непонятного?нет, ну мне тоже всё понятно, но конечный пользователь предпочитает всё же правильно распознаную кодировку
![:)](/images/graemlins/smile.gif)
это не так.ок, где она выставляется?
конечный пользователь предпочитает всё же правильно распознаную кодировкуФи, казуалы.
-Duser.language=ru -Duser.region=RU
2. В региональных опциях всё идентично - стандартные настройки для россииЗапости скрины, чтобы быть уверенным, что во всех местах стоят верные параметры (места, где можно выбрать, 3, но только 2 из них реально влияют на крякозябры).
в месте, где строковые константы берутся не из юникодных .xml файлов, а из юникодных .class файловГде именно пользователь видит крякозябры?
чо?
-Duser.language=ru -Duser.region=RUэто эквивалентно выставлению региона в винде (при отсутствии параметров)
не всегда.
не всегда.Когда не эквивалентно?
Запости скрины, чтобы быть уверенным, что во всех местах стоят верные параметры (места, где можно выбрать, 3, но только 2 из них реально влияют на крякозябры).Из каких мест скрины нужны? я знаю только 2 страницы в региональных опциях - первую и последнюю (регион и неюникодный язык)
Где именно пользователь видит крякозябры?На веб странице, которая создаётся GWT с кучей надстроек и берёт крикозябровые сообщения из .class файлов (ещё на этапе компиляции) (все остальные сообщения нормальные)
ну, например когда ява-машина запускается из ibm message broker.
эта сука берет ту локаль, которая была в момент установки и без явного указания параметра не меняет нивкакую.
![:)](/images/graemlins/smile.gif)
3. РљСЂРёРєРѕР·СЏР±СЂС‹Окстись, это не проблемы локали. Ты юникодную строку пытаешься вывести в ansi. Какая разница, какая локаль, если проблема в кодировке.
ты не совсем прав: да, это не проблема отображения CP1251 в CP1252, но некоторые гениальные решения могут выбрать юникод всегда кроме случая, что локаль английская и в этом случае шпарить в CP1252. Или наоборот - записывать будет всегда в юникоде (javac в нём скомпилит но от настроек решит читать как CP1252
ну, например когда ява-машина запускается из ibm message broker.эта сука берет ту локаль, которая была в момент установки и без явного указания параметра не меняет нивкакую.Скорее всего, она локаль где-то прописала в параметрах и использует их при запуске машины.
ты не совсем прав: да, это не проблема отображения CP1251 в CP1252, но некоторые гениальные решения могут выбрать юникод всегда кроме случая, что локаль английская и в этом случае шпарить в CP1252. Или наоборот - записывать будет всегда в юникоде (javac в нём скомпилит но от настроек решит читать как CP1252Кто будет писать такой маразматический код? Это же сложней и ненадежней.
PS JRE на машинах одинаковой версии? Если не ошибаюсь, версия 1.6 по-умолчанию всё считает юникодом, 1.5 - системной локалью.
берёт крикозябровые сообщения из .class файлов (ещё на этапе компиляции)Объясни, плз, подробнее. class-файлы появляются же после компиляции.
ошибаешься.
class a{
public static void main(String...args){
System.out.println(System.getProperty("file.encoding";
}
}
---------
void:~$ LANG=ru_RU.CP1251 java a
ANSI_X3.4-1968
void:~$ LANG=ru_RU.UTF-8 java a
UTF-8
void:~$ java -version
java version "1.6.0_22"
OpenJDK Runtime Environment (IcedTea6 1.10.1) (6b22-1.10.1-1)
OpenJDK 64-Bit Server VM (build 20.0-b11, mixed mode)
- window en
- linux
- java
?
profit
Объясни, плз, подробнее. class-файлы появляются же после компиляции.GWT - это фреймворк, который берёт откомпиленые class-файлы и перегоняет их в JavaScript, который будет работать в браузере у пользователя. А в этом проекте ещё парочка итераций вставлена
А некоторые гениальные программы (пример - tnsping, mysql и прочие, в т.ч. некоторые стандартные виндовые) выводят в консоль (активная кодировка 866) русский текст в кодировке 1251. Если перед запуском выполнить chcp 1251, то они они выводят в какой-то третьей кодировке. Вот почему приходится при возможности выбирать английский в настройках.
PS JRE на машинах одинаковой версии? Если не ошибаюсь, версия 1.6 по-умолчанию всё считает юникодом, 1.5 - системной локалью.Должно быть везде 1.6, но проверю ещё раз
Реально кинь пару скринов (проги) и не будет возникать таких глупых вопросов.
веб приложение на gwt. скрины кинуть не могу, тк оно на работе и рабочее
веб приложение на gwtСмотри что отдаёт сервер в качестве encoding в response (http заголовок).
Оставить комментарий
schipuchka1
История такова: есть проект на Java, который писало десятка 3 людей с руками различной кривости. Есть винда№1, русская, место жительства - Россия, дефолтный неюникодный - русский. Есть винда№2 - английская, место жительства - Россия (без этого глючит в другом месте дефолтный неюникодный - русский. На первой отбражается всё нормально, на второй - крикозябрами (юникод, если смотреть в цп1252) С чем это может быть связано?