У меня есть приложение Java, в котором пользователь вводит «испанский символ» из пользовательского интерфейса и должен отображаться на другой странице. Приложение прекрасно работает в среде WINDOWS, но при развертывании на сервере UNIX/Linux испанские символы отображаются неправильно.Испанский символ не поддерживается на сервере linux
Вот мои настройки локали Unix (с помощью локалите команды)
LANG=
LC_CTYPE="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_MESSAGES="C"
LC_ALL=
моего кодер Юникс окно символов (с использованием Java я проверил Charset.defaultCharset()
) является ISO 8859 1
И мой Java-код для отображения этих данных является
spanishName = new String(spanishName.getBytes("8859_1"), "UTF-8");
теперь печатает N?? L???d?
Если я печатаю эту переменную напрямую, то NT= LTß±dTr
.
Но исходные данные Néó Léáñdér
Вы принимаете ISO Latin каждый раз. Возможно, вам не требуется конвертировать в Unicode при развертывании на вашем сервере * nix. – Mena
Извините, все это немного расплывчато ... Очевидно, вы не можете правильно визуализировать такие символы при использовании ISO-8859-1 или ASCII, так как они не содержатся и должны быть интерпретированы с ошибкой. Вопрос здесь: _why_ ваша среда имеет эту настройку. Поэтому сегодняшняя Linux-система использует кодировку UTF-8, если не указано иное. поэтому ваши настройки языкового стандарта должны содержать что-то вроде 'en_US.UTF-8' ... – arkascha
Я думаю, мы используем старый ящик UNIX, и изменение этих параметров выходит за рамки моей. Мне нужны правильные данные в моем коде. Скажите, пожалуйста, можем ли мы обработать или переопределить его в нашем Java-коде. и только для моей информации, как мы можем изменить настройки locale_ в unix-окне? – user3035305