使用此代码我将数据保存到GAE Store 但是当存储阿拉伯语时,它在Store中的格式变为?????
如何在GAE中支持持久的阿拉伯语文本?
代码:
PersistenceManager manager = PMF.get().getPersistenceManager();
Category category = new Category(categoryName);
manager.makePersistent(category);
manager.refresh(category);
manager.close();
答案 0 :(得分:1)
当您从表单提交文本或将其呈现为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()
设置,则无法保证servlet引擎识别字符编码。请改用setContentType()
方法或setCharacterEncoding()
方法。