梦相随1006

版权归 梦相随1006 所有,未经 https://www.cnblogs.com/xin1006 作者许可,严禁转载

导航

Java报文或者同步的数据有个别乱码情况的处理.

 

从其它系统获取到的用户数据,1万多条数据有其中有2条数据是乱码形式,这种形式表现为最后一个字符和本身的分隔符组成了一个乱码
 
错误数据 :  220296|+|黄燕 鄚+|7|+|7|+|02220204
正确的数据:220534|+|杨萍|+|1|+|7|+|02220911
 
Java处理代码:
 
                   // 数据格式暂定 : 柜员号|柜员名称|柜员状态|柜员级别|所属机构号
                    String[] split = line.split(FeeSupport.FEE_DATA_SPLIT_REGEX);
                    
                    D5User teller = new D5User();
                    
                    //个别用户数据存在乱码问题(测试数据中1万条里面有2条是乱码,行方核心系统生成的时候就是乱码)
                    if(split.length<5){ //中文有问题,即柜员名称有问题.
                        
                        byte[] b1 = line.getBytes(FeeSupport.FEE_FILE_ENCODING_UTF8);
                        split = new String(b1,"iso-8859-1").split(FeeSupport.FEE_DATA_SPLIT_REGEX);
                        b1 = split[1].getBytes("iso-8859-1");
                        byte[] b2 =new byte[b1.length-1];
                        for(int i =0;i<b2.length;i++){
                            b2[i] = b1[i];
                        }
                        teller.setUser_name(new String(b2,FeeSupport.FEE_FILE_ENCODING_UTF8));
                    }else{
                        if(TellerOrganSupport.isEmpty(split[1])){                        //柜员名称
                            teller.setUser_name(TellerOrganSupport.USERNAME_DEFAULT);
                        }else{
                            teller.setUser_name(split[1]);
                        }
                    }

 

 

 

(转)谈谈对Java中Unicode、编码的理解

ASCII、Unicode、GBK和UTF-8字符编码的区别联系

 

posted on 2016-04-28 12:05  梦相随1006  阅读(628)  评论(0编辑  收藏  举报