castor Unmarshaller 汉字编码问题

castor Unmarshaller 在AIX机器上,怎么弄都不对

后来使用InputSource()包一下就好了,真是奇怪,如果只用FileReader,则总会有编码问题,使用InputStreamReader 指定编码也不好使。

TaskInfo taskInfo = (TaskInfo) unmarshaller.unmarshal(is);

TestCase.java

package com.utan.bean; import java.io.FileNotFoundException; import java.io.FileReader; import java.util.Iterator; import java.util.Vector; import org.exolab.castor.mapping.Mapping; import org.exolab.castor.xml.Unmarshaller; import org.xml.sax.InputSource; import com.utan.exchange.config.ExMapping; import com.utan.exchange.config.MappingItem; public class TestCase { /** * 获得输入源 * @param transFile * @return */ public InputSource getTransFileReader(String transFile) throws FileNotFoundException { InputSource is = null; is = new InputSource(new FileReader(transFile)); return is; } /** * 测试一 * */ public void test1(){ try { InputSource is = getTransFileReader("test.xml"); Mapping map = new Mapping(); map.loadMapping(this.getClass().getResource("mapping.xml")); Unmarshaller unmarshaller = new Unmarshaller(TaskInfo.class); unmarshaller.setMapping(map); TaskInfo taskInfo = (TaskInfo) unmarshaller.unmarshal(is); System.out.println(taskInfo.getTaskName()); System.out.println(taskInfo.getTaskDesc()); System.out.println(taskInfo.getTaskEnDesc()); } catch (Exception e) { e.printStackTrace(); } } /** * 主方法入口 * @param args */ public static void main(String[] args) { TestCase tc = new TestCase(); tc.test1(); } }


TaskInfo.java

package com.utan.bean; public class TaskInfo { private String taskName; private String taskDesc; private String taskEnDesc; public String getTaskDesc() { return taskDesc; } public void setTaskDesc(String taskDesc) { this.taskDesc = taskDesc; } public String getTaskEnDesc() { return taskEnDesc; } public void setTaskEnDesc(String taskEnDesc) { this.taskEnDesc = taskEnDesc; } public String getTaskName() { return taskName; } public void setTaskName(String taskName) { this.taskName = taskName; } }

Mapping.xml

<?xml version="1.0"?> <!DOCTYPE mapping PUBLIC "-//EXOLAB/Castor Mapping DTD Version 1.0//EN" "http://castor.org/mapping.dtd"> <mapping> <description>Map xml file to Template object</description> <class name="com.utan.bean.TaskInfo"> <map-to xml="trans"/> <field name="taskName" type="java.lang.String"> <bind-xml name="taskName" node="element"/> </field> <field name="taskDesc" type="java.lang.String"> <bind-xml name="taskDesc" node="element"/> </field> <field name="taskEnDesc" type="java.lang.String"> <bind-xml name="taskEnDesc" node="element"/> </field> </class> </mapping>

test.xml

<?xml version="1.0" encoding="GB2312"?><taskInfo> <taskName>RCPMake2101</taskName> <taskDesc>人民币跨境收入信息(2101)</taskDesc> <taskEnDesc>RCPMake2101</taskEnDesc> </taskInfo>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值