Android调用Webservice的方法,向Oracle数据库插入数据,显示中文乱码。PLSQL直接输入中文正常显示。

如题所示,我的Webservice端部署在Tomcat上,然后在Android端这边进行调用,调用插入的方法,只要有插入中文的,在PLSQL上查看,都不能正常显示。如果是在PLSQL里的某个字段上直接输入中文,保存之后,则能够正常显示。
字符集的原因我有考虑到,ZHSGBK16我试过,然后将NLS_LANG也设置了,在环境变量和注册表都设置了。 在这种情况下,插入数据库的中文,显示的是问号的乱码。 就是不一定有几个问号,有时是问号加上空格,反正都是跟问号相关的乱码。
然后就按照另外一种方法,将编码改成UTF8,方法也是按照网上的方法。用管理员身份进入,然后将Oracle的服务端的编码改成UTF8,在系统中查询,发现已经将数据库的字符集改成了UTF8.
select userenv('language') from dual;
SIMPLIFIED CHINESE_CHINA.UTF8
现在是这样显示的,然后将环境变量和注册表那边NLS_LANG的值也改成这个。但是还是乱码。不过现在的乱码不是显示问号,而是真正的乱码。比如:外环路这样的,'感冒咳嗽'这样的,口腔科,这样的。
我在Android端那边测试过,在调用方法前,这些要插入数据库的中文字段都是正常的,也就是在Android这边还是正常的中文。
我在想,应该就是从Android-Webservice这边出问题了。可是这边的转码要在哪里设置呢? Web.xml还有软件的编码方式全部都是UTF8,已经统一了。其他还有哪里可以设置的?
还有一点,如果我调用WebService不是通过Android端,是通过一个JAVA类,里面有远程调用的方法,RPCServiceClient,调用Webservice上的同一个方法,插入数据库,这边的参数,是我们自己设定的,用一个数组来指定。然后中文的形式,也就是字符串的形式,{"你好",123,"aaa"};大概这样的形式。如果是这样调用方法,插入数据库,这边插入的中文就能在数据库中正常显示出来。
求助啊。这个问题弄了好几天了。 谢谢。如果解决了可以加分。

这个估计与汉字编码和android的默认编码有关,android的默认编码为UTF8,程序中要对编码进行转换,数据库如果使用Unicode编码,问题会少一些。追问

那这个我要怎么设置呢? 数据库的那天刚设置成UTF8的。 Android的是UTF8的没错。可是现在连是哪个环节出错都不知道。

温馨提示:答案为网友推荐,仅供参考
相似回答