oracle数据库字符集US7ASCII,在java中处理中文问题

原来项目中oracle数据库一直是US7ASCII,我新项目对接的时候,查询以及插入中文,出现乱码问题。

暂时未能解决此问题,最终决定每次转码:

查询的时候:

1 List<Record> list = Db.use("oracle").find("select * from order order by id desc");
2         for (Record record : list) {
3             String str = record.getStr("department");
4             String ss = "";
5             if(str!=null)
6                 ss = ArticleUtil.convert(str,"gbk");
7             record.set("department",ss );
8         }

关于转码的操作:

1 public static String convert(String str,String charsetName){
2         String result = "未识别";
3         try {
4             result = new String(str.getBytes("ISO-8859-1"),charsetName);
5         } catch (UnsupportedEncodingException e) {
6             e.printStackTrace();
7         }
8         return result;
9     }

插入和更新的时候,处理中文:

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,写入数据库。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏肖洒的博客

java本地文件操作

883
来自专栏简书专栏

基于bs4+requests的python爬虫伪装 - 草稿

要导入fake-useragent库,需要先用pip安装,安装命令:pip install fake-useragent params是爬虫伪装的参数,数据类...

602
来自专栏草根专栏

Python数据分析(一): ipython 技巧!

不一定非得使用Jupyter Notebook,试试ipython命令行 安装 ipython 我只试过Windows 10环境下的。 1.安装python安装...

2736
来自专栏前端小叙

localstorage和sessionstorage上手使用记录

通过阅读各路大神对web存储locastorage和sessionstorage的用法解析,自己试用了一下,在此留个备忘。 在项目中,如果用到很多次storag...

3417
来自专栏py+selenium

python爬虫笔记之爬取足球比赛赛程

目标:爬取某网站比赛赛程,动态网页,则需找到对应ajax请求(具体可参考:https://blog.csdn.net/you_are_my_dream/arti...

611
来自专栏安恒网络空间安全讲武堂

WriteUp分享 | CTF-web

题目 各种绕过哦 TXT? 文件上传测试 本地包含 考细心 正则? PHP很烦人? 一道签到题 抽抽奖 never give up I have a j...

1.4K8
来自专栏人工智能LeadAI

Python调用C函数的方法以及如何编写Python的C扩展

01 前言 前言属闲聊,正文请转后。 标题比较长,其实“如何用Python调用C的函数”以及“如何编写Python的C扩展”在广义上是同一件事,因为都是用C写底...

3536
来自专栏技术之路

struts2 DMI

在使用DMI(动态方法调用)的时候要注意struts.xml配置时要把 <constant name="struts.enable.DynamicMethodI...

1675
来自专栏从零开始的linux

文件查找

文件查找:locate, find 实时查找:遍历所有文件进行条件匹配 非实时查找:根据索引查找 locate...

2648
来自专栏极客慕白的成长之路

CTF札记二

首先第一层检查需要绕过ereg漏洞,百度可以知道存在截断的问题:ereg读到%00的时候,就截止了, 那么在字符串里面包括%00即可; 接着需要长度小于8但要大...

583

扫描关注云+社区