它更可能是当你从一个表单提交,或使其为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()
方法。
出于好奇:为什么要调用refresh()? – Stefan 2011-05-20 22:01:26
获得持久类别的ID – 2011-05-21 16:25:40