GAE阿拉伯语支持
使用此代码我坚持数据GAE商店 但当存储阿拉伯语的格式在商店成为?????GAE阿拉伯语支持
如何在GAE中支持persist阿拉伯文字?
代码:
PersistenceManager manager = PMF.get().getPersistenceManager();
Category category = new Category(categoryName);
manager.makePersistent(category);
manager.refresh(category);
manager.close();
它更可能是当你从一个表单提交,或使其为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
,那么它确实是无法处理阿拉伯语的持久层。发布您的发现,一旦我们更确信问题出在哪里,我们将努力寻找解决方案。
更新: servlet引擎不能保证,如果你通过setHeader()
将其设置为识别的字符编码。改为使用setContentType()
方法或setCharacterEncoding()
方法。
使用测试后的持久名称?????? 并没有任何事发生 – 2011-05-21 16:33:31
@ahmed Shoeib - 第二次测试呢?您是否检索了该类别并将其名称与原始字符串进行了比较? – erickson 2011-05-21 18:28:00
在服务器端我打印categoryName 的值,我发现它是阿拉伯文 但是,当它添加到存储它的格式转换为? – 2011-05-21 21:33:38
出于好奇:为什么要调用refresh()? – Stefan 2011-05-20 22:01:26
获得持久类别的ID – 2011-05-21 16:25:40