Я создаю приложение gwt, которое хранит текст случайных веб-страниц в текстовом поле хранилища данных.Часто текст форматируется UTF-8.Все файлы моего приложения хранятся в формате UTF-8, и когда я запускаю приложение на локальном компьютере, весь процесс работает нормально.Текст UTF-8 хранится как таковой и может быть извлечен из локальной версии ядра приложения как UTF-8.Однако, когда я развертываю приложение в движке приложения Google где-то между тем, когда я сохраняю текст, и когда я получаю его, это больше не UTF-8, в результате чего символы, отличные от ascii, будут отображаться как?просмотреть хранилище данных в панели управления appengine, все специальные символы отображаются как?что заставляет меня поверить, что это проблема при записи в базу данных.
Кто-нибудь знает, как это исправить?
Само приложение немного велико.Вот какой-то псевдокод:
Text webPageText = new Text(<STRING THAT CONTAINS UNICODE CHARACTERS>);
/*Some Code to store Text object on datastore
Specifically I'm using javax.jdo.PersistenceManager to do this.
Some Code to retrieve text from datastore. */
String retrievedText = webPageText.getValue();
Проблема в том, что возвращаемый текст возвращается?вместо символов Юникода.
Вот похожая проблема в python, которую я обнаружил: Попытка сохранить данные Utf-8 в хранилище данных, получая UnicodeEncodeError .Хотя мое приложение не получает никаких ошибок.
К сожалению, я думаю, что строки Java по умолчанию являются utf-8, и я не могу найти код, который позволил бы мне объявить их явно как utf-8.
Редактировать: я сейчас создал небольшое веб-приложение, которое принимает текст в кодировке Unicode, сохраняет его в хранилище данных и затем извлекает его без проблем.Я до сих пор не знаю, в чем проблема в моем исходном коде, но я собираюсь изменить способ, которым мой код обрабатывает поиск веб-страниц, чтобы соответствовать меньшему приложению, которое я только что создал.Спасибо всем за помощь.