java连接oracle为什么不用设置编码方式

java启动参数不管-Dfile.encoding加的是什么,从oracle查询返回的中文string结果都是正确的,为什么呢?我的理解是java从oracle查询的结果都是字节流,java的string用的utf16储存的,要正确的从字节流存为utf16,必定得知道oracle存储数据的字符集是什么,但是java这边字符集怎么设置都不影响最终的结果,所以java从oracle查询到的中文是永远不会乱码吗?就是oracle的中文字符到java这边的解析流程不太清楚,也没查到资料,求知道的大神能解答一下,谢谢!

阅读 2.3k
2 个回答

oracle 默认字符集 utf16,于是就直接屏蔽了乱码问题

头像
自然
    274
    新疆乌鲁木齐市

    -Dfile.encoding 应该是解析文件用的字符集。
    如果是linux,你应该是设置 LANG 环境变量,改变语言与字符集。(只要字符集不一致 会出现乱码的)

    撰写回答
    你尚未登录,登录后可以
    • 和开发者交流问题的细节
    • 关注并接收问题和回答的更新提醒
    • 参与内容的编辑和改进,让解决方法与时俱进
    推荐问题