起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1399|回复: 3

[结贴] 新手求助,中文字符串编码问题

[复制链接]

5

主题

14

帖子

54

积分

初级会员

Rank: 2

积分
54
QQ
发表于 2016-2-24 20:28:59 | 显示全部楼层 |阅读模式
    最近开发一个功能时发现一个问题,希望能得到帮助。
    这个功能大致内容是:从前端传入参数{"Name":"张三"},后台JAVA接收参数,并把Name的值加密后通过webservice存入到数据库中。但是,传输过去后发现,在数据库中,Name 字段所有中文字符串都是乱码。而相同内容的中文字符串在main中赋值传输就不会出现乱码。
    经过一段时间的调试和排查后,发现是从前端页面input控件中取出的中文字符串编码有问题。同样一段文字,从前端取出传到后台,与在后台直接赋值转换后得到的utf-8字符不一样!而且,同是
                        String str2 = "张三";
                        String xmString2 = new String(str2.toString().getBytes("UTF-8"));
                        String xmlUTF8_2 = URLEncoder.encode(xmString2, "UTF-8");  
这一段代码,在Main中执行打印出来的utf8编码,与前端服务映射的java方法中打印出来的结果也不一样,想请问下这是什么原因?谢谢!
    具体问题截图:

前端页面填写内容

前端页面填写内容
前端页面填写内容(“张三”即为Name值)

3.png
前端服务映射的Java方法,Name为前端传入的中文字符串“张三”

2.png
打印内容

1.png
main中相同代码执行的结果


发表于 2016-2-25 09:42:42 | 显示全部楼层
请问执行的环境有什么区别?java文件的编码格式是否一致?
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

5

主题

14

帖子

54

积分

初级会员

Rank: 2

积分
54
QQ
 楼主| 发表于 2016-2-25 09:46:17 | 显示全部楼层
liangyongfei 发表于 2016-2-25 09:42
请问执行的环境有什么区别?java文件的编码格式是否一致?

编码都是UTF-8,然后两段代码都是在同一个类里边的,区别是出问题的那个方法由前端服务调用。
回复 支持 反对

使用道具 举报

发表于 2016-2-25 11:10:36 | 显示全部楼层
RomynFang 发表于 2016-2-25 09:46
编码都是UTF-8,然后两段代码都是在同一个类里边的,区别是出问题的那个方法由前端服务调用。 ...

那你打印一下这个变量  : xmString2
看看两种执行方式是否打印的结果一致??
就知道是执行那个方法引起的差异,这个可能和运行的环境变量有关系,建议你上网查下这方面资料吧!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-6 15:21 , Processed in 0.063868 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表