GAE арабская поддержка - PullRequest
1 голос
/ 20 мая 2011

используя этот код, я сохраняю данные в GAE Store, но при сохранении арабского языка его формат в Store становится равным

как поддерживать постоянный арабский текст в GAE?

код:

    PersistenceManager manager = PMF.get().getPersistenceManager();
    Category category = new Category(categoryName);
    manager.makePersistent(category);
    manager.refresh(category);
    manager.close();

1 Ответ

1 голос
/ 20 мая 2011

Скорее всего, текст поврежден, когда вы отправляете его из формы или отображаете его в HTML, а не когда он сохраняется (или извлекается).

В качестве быстрого теста попробуйте это:

String test = "\u0627\u0644\u0633\u0644\u0627\u0645";
PersistenceManager manager = PMF.get().getPersistenceManager();
Category category = new Category(test);
manager.makePersistent(category);
manager.refresh(category);
manager.close();

Если это отображается правильно (السلام), то проблема в том, как обрабатывается ввод на пути в приложение. Если он по-прежнему поврежден, попробуйте другой тест, в котором вы получите имя категории, и в вашем приложении сравните его с исходным значением test. Тест может выглядеть примерно так:

boolean okay = "\u0627\u0644\u0633\u0644\u0627\u0645".equals(category.getName());

Записать (или отобразить) значение okay. Если false, то это действительно слой постоянства, который не может обрабатывать арабский язык. Опубликуйте свои выводы, и мы позаботимся о решении, когда будем более уверены в том, в чем действительно проблема.


Обновление: Механизм сервлета не гарантированно распознает кодировку символов, если вы установите ее с помощью setHeader(). Вместо этого используйте метод setContentType() или метод setCharacterEncoding().

...