我现在遇到了一个大大的难题,就是Oracle数据库读取xml字符串的问题。
我的表中有个字段是varchar类型,足够大,我里面放的String,其实是一个xml文件的内容。我需要的是从数据库里面读出来这个String后,改为xml格式,dom4j能够自动解析出来。问题出现了:当这个字符串里只有英文的时候,对这个xml文件的解析是成功的。但是当里面出现中文后,直接读取形成xml文件后,次文件根本无法被IE显示,当然也不能用dom4j解析了。在记事本里打开一看,发现不是按utf8存的,然后save as选择utf8后,解析成功。
我现在需要的就是直接把数据库里面的字符串取出来以后,就能直接是以utf8进行存储的。当然,我的xml头是按utf8编码的,如果改为gb2312,则汉字也能成功,但是这只是个暂时的策略。
我查看了Oracle建新的数据库时的配置,发现有“默认字符集”和“国家字符集”两个选项,前者是没有utf8格式的。我现在想知道这两种字符集,分别是有什么用处呢?为什么指定utf8后,在数据库里面存储的还是GBK呢?问题重大,优先级很高,请大家尽力帮忙,我先谢谢大家了!!谢谢!!

解决方案 »

  1.   

    通俗一些,就是说我的Oracle数据库中的一个字段是个varchar类型,这里面其实是个xml文件的内容。
    我现在需要的就是把这个字符串取出来之后,形成一个xml文件,这个xml应该是能被dom4j正确解析的。
    现在的问题就是,当字符串中没有汉字时,直接形成的文件是正确的,但是如果有汉字,则xml文件会出错。因为存为xml文件时,默认是按ansi存储的……任务紧急,请大家帮忙啊!谢谢
      

  2.   

    我想是UNICODE和你varchar类型的不匹配造成的
    就是文件里的一个字符占2个字节你的varchar只占一个字节我想在他们之间存取转换可能有问题
    你把varchar换成nvarchar试一下
    我是这样理解的不知道对不对,有不对的请大家提出来~~!!
      

  3.   

    还是不行的。
    见过的所有作Oracle数据库的,都没有考虑这么统一的,无奈了