Я не видел шаблон √Ö√Ñ√ñ
раньше.Это не вписывается в обычные паттерны неправильной работы с использованием любых известных мне кодировок ISO-8859.Поскольку вы говорили о Mac OS Roman в одном из ваших комментариев, я исследовал его кодовую страницу и пришел к выводу, что эта кодировка где-то неправильно использовалась.
Строка ÅÄÖ
состоит из следующих байтов UTF-8:
String s = "ÅÄÖ";
for (byte b : s.getBytes("UTF-8")) {
System.out.printf("0x%X ", b); // 0xC3 0x85 0xC3 0x84 0xC3 0x96
}
Кодовая страница учит меня, что 0xC3
действительно означает √
и что 0x85
, 0x84
и 0x96
означает Ö
, Ñ
и ñ
соответственно в римской кодировке Mac OS.
Поскольку вы сказали, что он отлично работает при использовании в сервлетах и что оба используют один и тот же приложение для ведения журнала, выходные данные журнала могут быть исключены изподозреваемого.Теперь я могу думать только об одной причине: файл с этими символами был сохранен с использованием римской кодировки Mac OS вместо UTF-8.Непонятно, какой редактор вы используете на Mac, но Notepad и Eclipse выдали бы предупреждающее сообщение об этом, и при повторном открытии файла в редакторе должны были отображаться те же некорректные символы.
Какой редактор вы используете?Это явно настроено для сохранения файлов с использованием кодировки UTF-8?
Обновление : поскольку это не является причиной проблемы, давайте вернемся к тому факту, что она работает нормально при использовании сервлетов.Как именно вы это проверили?Разве вы случайно не вводили эти символы, используя римскую кодировку Mac OS, чтобы они правильно отображались, когда регистратор все-таки, вероятно, настроен для использования Mac OS Roman?Куда ведет логгер?Командная консоль или лог-файл?Как они закодированы?Что детекторы кодирования говорят о кодировке файла?(извините, я не работаю с Mac, но Editplus / Notepad ++ в Windows, например, может обнаружить / автоматически определить кодировку файла и сообщить об этом).