String s = request.getParameter("name");
String name= new String(s.getBytes("ISO-8859-1"), "GBK");
------
这里为什么getBytes()是IS0-8859-1编码?为不什么不是UTF-8或其他?
new String(,"GBK") ,为什么是GBK,而不是BIG或者其他?---
我的页面都是GBK编码格式的,new String(s.getBytes("ISO-8859-1"), "GBK") 这语句是正确的,我只是不明白其中原理
String name= new String(s.getBytes("ISO-8859-1"), "GBK");
------
这里为什么getBytes()是IS0-8859-1编码?为不什么不是UTF-8或其他?
new String(,"GBK") ,为什么是GBK,而不是BIG或者其他?---
我的页面都是GBK编码格式的,new String(s.getBytes("ISO-8859-1"), "GBK") 这语句是正确的,我只是不明白其中原理
2.你也可以不用GBK啊,我平时就用UTF-8。new String(..,"utf-8")
c0 cd b6 af bd da bf ec b5 bd c1 cb这很明显是不正确的,但是我们如果使用传输之前的编码进行组装的话,编码器就会根本字符集的特征将这些字节组装并编码成字符串了。像上面这个如果使用 new String(s.getBytes("ISO-8859-1"), "GBK") 的话,就会两个字节,两个字节的进行组装: 劳 动 节 快 到 了
c0cd b6af bdda bfec b5bd c1cb不知道这样说,你能明白么?
* 如果出现稀奇古怪的符号,并夹杂着一些繁体或者简体汉字的话,这一般是 GBK 与 UTF-8 转码出现了错误。如果出现的字符数比原字符数多的话,那表明本该 UTF-8 的字符采用 GBK 进行转码了,如果出现的字符数比原字符数少的话,那表明本该 GBK 的字符采用 UTF-8 进行转码了。
但new String(s.getBytes("ISO-8859-1"), "GBK") 的后半段还没明白 ,为什么是GBK ? 这个GBK 与那里的设置关系?说明一下,我用的是tomcat,服务器没有进行任何的配置。
而中文编码有:gbk,gb2312,UTF-8.Windows使用的gbk。
如果你页面编码要统一,才不会出现乱码,也不用转换。
问下 火龙果 那个 在Servlet中request.setCharactorEncoding是不是就是设置组装的格式??
String name= new String(s.getBytes("ISO-8859-1"), "GBK");
------
这里为什么getBytes()是IS0-8859-1编码?
这里的编码不一定是IS0-8859-1,这里的编码要看在传name这个属性的jsp页面中的编码,这里填的编码就是jsp页面中的编码。
new String(,"GBK") ,为什么是GBK,而不是BIG或者其他?
GBK是你想转换成的编码一般是要和数据库一样的编码。
总结就是:
String s = request.getParameter("name");
String name= new String(s.getBytes("jsp页面的上的编码"), "自己想要的编码(一般是数据库的编码 或这要跳转后的jsp编码)");