当前位置: 技术问答>java相关
再来讨论一下JAVA中的汉字编码问题
来源: 互联网 发布时间:2015-06-12
本文导语: 曾经花了不少时间看编码(GB,UNICODE)方面的资料。还要问个问题: 我的环境:Window2000, Resin, JDK14, J2EE13 有一个servlet, 名为test, 我POST一个表单,表单中有一个city字段,我在输入框中输入了‘国’, 在那个test(servl...
曾经花了不少时间看编码(GB,UNICODE)方面的资料。还要问个问题:
我的环境:Window2000, Resin, JDK14, J2EE13
有一个servlet, 名为test,
我POST一个表单,表单中有一个city字段,我在输入框中输入了‘国’,
在那个test(servlet中),
String r = request.getParameter("city");
System.out.println(r); //输出乱码
byte[] b = r.getBytes("ISO8859-1");
System.out.println(new String(b)); //输出‘国’,这个char 的值为22269(-71,-6),看来进行默认编码后是一个unicode编码。
System.out.println(new String(b,"GB2312")); //输出‘国’,这个char 的值为22269(-71,-6),看来还是一个unicode编码。那么,这里的GB2312为什么不起作用呢?
我的环境:Window2000, Resin, JDK14, J2EE13
有一个servlet, 名为test,
我POST一个表单,表单中有一个city字段,我在输入框中输入了‘国’,
在那个test(servlet中),
String r = request.getParameter("city");
System.out.println(r); //输出乱码
byte[] b = r.getBytes("ISO8859-1");
System.out.println(new String(b)); //输出‘国’,这个char 的值为22269(-71,-6),看来进行默认编码后是一个unicode编码。
System.out.println(new String(b,"GB2312")); //输出‘国’,这个char 的值为22269(-71,-6),看来还是一个unicode编码。那么,这里的GB2312为什么不起作用呢?
|
new String(bytes)
如果不指定编码形式,他将以缺省形式进行编码
如果你编译的环境设置的是缺省的,那就以你的操作系统的Local为准
所以你在中文的window下
new Sting(new String(b))
和 new String(new String(b),"GB2312")
是一样的
不信你可以到linux下试试
如果不指定编码形式,他将以缺省形式进行编码
如果你编译的环境设置的是缺省的,那就以你的操作系统的Local为准
所以你在中文的window下
new Sting(new String(b))
和 new String(new String(b),"GB2312")
是一样的
不信你可以到linux下试试
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。