java读取oracle字符串生成XML乱码问题

我喜欢吃包子 2014-02-12 09:28:25
各位大大,最近公司生产出了这样一个问题,java从oracle数据库读取XML字符串,并生成XML文件。结果XML文件中的中文全部变成了问号。XML字符串在数据库中是以<CLOB>形式存进去的,且数据库中XML串的中文不是问号。请问这种情况是什么原因?如何解决!(注:这种情况在我本地开发环境和测试环境都没有问题,到了生产就出现了!)
...全文
356 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
我喜欢吃包子 2014-02-13
  • 打赏
  • 举报
回复
引用 12 楼 wangquanzheng 的回复:
查看和修改 http://www.2cto.com/database/201111/111388.html
谢谢,但是我看了生产环境和测试环境的字符集是一样的~
我喜欢吃包子 2014-02-12
  • 打赏
  • 举报
回复
引用 7 楼 u010006337 的回复:
本地开发环境和测试环境与生产版本一致么?
这种情况,我都没法调试!
我喜欢吃包子 2014-02-12
  • 打赏
  • 举报
回复
引用 7 楼 u010006337 的回复:
本地开发环境和测试环境与生产版本一致么?
是一致的,所以我就搞不懂勒!
___________小P 2014-02-12
  • 打赏
  • 举报
回复
本地开发环境和测试环境与生产版本一致么?
我喜欢吃包子 2014-02-12
  • 打赏
  • 举报
回复
引用 5 楼 fangmingshijie 的回复:
你用OutputStreamWriter代替stringwriter写回文件,如new OutputStreamWriter(new FileOutputStream("src/xxoo.xml"), "gbk");


我是用这种方式生成XML文件的:

  • 打赏
  • 举报
回复
你用OutputStreamWriter代替stringwriter写回文件,如new OutputStreamWriter(new FileOutputStream("src/xxoo.xml"), "gbk");
我喜欢吃包子 2014-02-12
  • 打赏
  • 举报
回复
引用 1 楼 baohuan_love 的回复:
中文乱码首先考虑还是字符集问题,使用oracle命令查看一下表的字符集,然后再程序中使用相同字符集获取,再转成你需要的字符集。
数据库中存储的是中文没问题,从数据库中拿出来到java还是中文没问题,问题出在将从数据库中获取的XML字符串生成XML文件后,XML文件中的中文变成了问号,而在生成XML文件之前我做了一个“将从数据库中获取的xml字符串格式化成标准的xml文件格式”的操作,如上楼回复!我想知道为什么会这样!
我喜欢吃包子 2014-02-12
  • 打赏
  • 举报
回复
引用 2 楼 fangmingshijie 的回复:
你先确定是哪一步出现的乱码。


从数据库获取字符串到java是中文没问题,问题出在java中将字符串生成XML文件的时候!
因为我在生成XML文件之前,对字符串做了一个格式化的处理。格式化主要功能是这样如下图:

就是在这个格式化后生成的XML中中文变成了问号。
  • 打赏
  • 举报
回复
你先确定是哪一步出现的乱码。
  • 打赏
  • 举报
回复
中文乱码首先考虑还是字符集问题,使用oracle命令查看一下表的字符集,然后再程序中使用相同字符集获取,再转成你需要的字符集。
安心逍遥 2014-02-12
  • 打赏
  • 举报
回复
我喜欢吃包子 2014-02-12
  • 打赏
  • 举报
回复
引用 10 楼 wangquanzheng 的回复:
开发环境和测试环境的数据库跟生产环境的数据库不一样吧,首先考虑字符集的问题。查看一下测试环境和生产环境数据库的字符集是否一样。
如何查看勒!
安心逍遥 2014-02-12
  • 打赏
  • 举报
回复
开发环境和测试环境的数据库跟生产环境的数据库不一样吧,首先考虑字符集的问题。查看一下测试环境和生产环境数据库的字符集是否一样。

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧