乱码问题

在开发时遇到一些 乱码问题  只是生僻字的乱码  如 燊 媗 这类

对方的数据库为 Oracle  

字符集为

问题原因:对方数据库编码未知  由中间层传过来的数据格式为 utf-8 但生僻字的字符 会转为类似于unicode 如 燊 会转为 \u009f? 导致转换更换编号后一直存在问题 

解决办法 : 在中间层取回来后 直接转为字节  让后转换为iso-8859-1 继而进行破碎重组 转换为utf-8 此时显示已经正确  但是还是一个单独的json串   转为单独的门诊病人对象后  返回到页面上 此时页面显示已经正常


代码展示:

System.out.println("returnMap" + returnMap);

try {

//输出的json 格式 为[{"PATIENTID":"SY00144840","PATIENTINID":"SY00144840","PATIENTNAME":"徐炜燊","GENDER":"2","AGE":"7","AGEFLAG":"1","DEPTCODE":"028804","WARDCODE":"028804","DIAGNOSIS":"1、重型地中海贫血"}]

System.out.println("测试输出utf" +new String(json.toString().getBytes("iso-8859-1"),"GBK"));

json =new String(json.toString().getBytes("iso-8859-1"),"GBK");

json=json.replace("[","").replace("]","");

DtoHisPatient a=JSONObject.parseObject(json,DtoHisPatient.class);

list.add(a);

returnMap.put("rows", a);

System.out.println("json 输出"+json);

return list;

}catch (UnsupportedEncodingException e) {

e.printStackTrace();

}

你可能感兴趣的:(乱码问题)