GAE阿拉伯语支持

时间:2011-05-20 18:09:43

标签: java google-app-engine google-cloud-datastore arabic

使用此代码我将数据保存到GAE Store 但是当存储阿拉伯语时,它在Store中的格式变为?????

如何在GAE中支持持久的阿拉伯语文本?

代码:

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

1 个答案:

答案 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()方法。