Кодировка Google App Engine - PullRequest
       0

Кодировка Google App Engine

4 голосов
/ 03 февраля 2011

Я пытаюсь записать какой-нибудь русский текст:

LOG.info("тестирование русского");

Но вместо этого я получаю символы вопроса (просмотр из Интернета):

[app-id / app-версия] .: 15: 18: 44,753 ИНФОРМАЦИЯ [класс] - ????????????????????

Файл Java, сохраненный в кодировке UTF-8.Все настройки по умолчанию.

Даже я читаю файл в UTF-8 с русскими символами и пытаюсь что-то из него записать - кодировка тоже неправильная.

Ответы [ 2 ]

3 голосов
/ 04 июля 2011

У меня была похожая проблема с текстом на иврите.Я обнаружил, что это вызвано кодировкой по умолчанию.

Чтобы проверить кодировку по умолчанию, я использовал этот код:

OutputStreamWriter out = new OutputStreamWriter(new ByteArrayOutputStream());
String encoding = out.getEncoding(); 

На моем компьютере кодировка "UTF8".На сервере GAE это «ASCII».

Я решил проблему, заменив все программы чтения файлов в моем коде:

new InputStreamReader(new FileInputStream(file), "UTF8"));

Это говорит Java игнорировать кодировку по умолчанию,и откройте все входные файлы как UTF8.

1 голос
/ 04 сентября 2015

Попробуй это. По-видимому, GAE пытается автоматически определить кодировку и дает сбой. Даже постоянные строки были испорчены

public class Util {
    public static String FixRussianString(String string){
        try {
            return new String(string.getBytes("CP1251"), "UTF-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return string;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...