oracle数据库字符集US7ASCII,在java中处理中文问题
2015-09-01 13:50
1176 查看
原来项目中oracle数据库一直是US7ASCII,我新项目对接的时候,查询以及插入中文,出现乱码问题。
暂时未能解决此问题,最终决定每次转码:
查询的时候:
关于转码的操作:
插入和更新的时候,处理中文:
也就是说,当读取的时候,从数据中得到中文字符,然后以iso-8859-1 encode,再以gbk decode来正确显示中文,
当写入的时候,需要将中文字符 以gbk encode,再以iso-8859-1 decode,写入数据库。
暂时未能解决此问题,最终决定每次转码:
查询的时候:
List<Record> list = Db.use("oracle").find("select * from order order by id desc"); for (Record record : list) { String str = record.getStr("department"); String ss = ""; if(str!=null) ss = ArticleUtil.convert(str,"gbk"); record.set("department",ss ); }
关于转码的操作:
public static String convert(String str,String charsetName){ String result = "未识别"; try { result = new String(str.getBytes("ISO-8859-1"),charsetName); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return result; }
插入和更新的时候,处理中文:
public void testSave(){ String username = getPara("username"); String password = getPara("password"); String department = getPara("department"); try { department=new String(department.getBytes("gbk"),"iso-8859-1"); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } Record r = new Record().set("department",department) .set("username",username).set("password",password); Db.use("oracle").save("user", r); renderJson(); }
也就是说,当读取的时候,从数据中得到中文字符,然后以iso-8859-1 encode,再以gbk decode来正确显示中文,
当写入的时候,需要将中文字符 以gbk encode,再以iso-8859-1 decode,写入数据库。
相关文章推荐
- oracle表数据类型number对应java中BIgDecimal转int
- ORACLE wmsys.wm_concat()函数把某列数据整合到一起
- Oracle,实现一条记录的上移下移
- mysql可有类似oracle的nvl的函数
- Oracle GoldenGate 三、加密
- hiberante4连接oracle数据库入门
- oracle命令登录数据库
- ORACLE wmsys.wm_concat()函数把某列数据整合到一起
- oracle中查看sql语句的执行计划
- oracle 创建临时表问题实战案例一
- 10g Manual Database Creation in Oracle (Single Instance and RAC) (文档 ID 240052.1)
- oracle的行级锁与表级锁
- oracle列转行
- Oracle Minus(差集) 同步数据常用
- Install_Oracle_Database_11g on RedHat 6.4 – problems and solution
- oracle分区索引
- Oracle 051 的几个题 (oracle 11g)
- 问题:Oracle long 类型l;结果:oracle里long类型的总结
- Oracle11g数据库监听配置
- 使用Navicat for Oracle新建表空间、用户及权限赋予