返回首页

xml字段读取解释中乱码解决方法

时间:2014-12-08 11:36来源:未知
  

 测试程序时,java抛出了system.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:42)相关的java.lang.IllegalStateException

最奇怪的是与id相关,有些数据库读的ID出错,有些不出错。因此就与网上所有提出此一错误的贴子,完全不投契。 只能倒转从home.jsp从查找出错的代码行。
开始估计是由于utf-8转换时,把文本中的xml的utf-8设置给干掉了。因此要回到数据库层面。
按昨天处理的字符集信息,倒回到原来的latin1,这是没有经过字符处理的文件。但是结果仍然出错。
逐段检查下来,错误居然是这个毫无问题的字段
<chn><![CDATA[疼痛科]]></chn>
进一步的检查确认,这是因为读取longtext字段的xml时,digester要分析的文件里的中文是乱码,因为乱码干扰了xml分析器识别的文本标记,所以程序解释出错。
现在的问题是,数据库送过来显示的中文却是正确的。但是java中提取分析的xml数据,却是错误的。
 
开始时想到,可能是因为此前修改字段时,修改过request,应该可以将一个原封的应用目录抄过来,看看是否正常。 
转换后仍是如此,排除了没有修改过来的可能性。事实上,如果没有修改过来,也不能通过第一次编译。 
 
这个问题有点印象,以前碰到过。恢复的程序版本参差,有些地方可能自相矛盾。只能一点点digbug
 
进一步发现,成功打开过的xml实体bean自动存回数据库时,代码是变乱了。即它读到的是乱码,写回起也是乱码。
 
------分隔线----------------------------
推荐内容