比如海淀的“淀”字,如果输入的是海淀区,就变成了海??,把“淀”字去掉,就对了。
这个字也不是生僻字吧,为什么会乱码,不懂。。。
String unicode = new String(utf8.getBytes(), "UTF-8");
String gbk = new String(unicode.getBytes("GBK"));
其中,第一句中的utf8变量是一个utf-8编码的字符串。
由于程序的编码格式为GBK,需要进行转换。
第二行的gbk变量出现了上述乱码。
utf8转gbk个别中文出现乱码。
答案:2 悬赏:10
解决时间 2021-04-07 11:26
- 提问者网友:浪女天生ˇ性情薄
- 2021-04-06 18:13
最佳答案
- 二级知识专家网友:你好陌生人
- 2021-04-06 19:16
这其中存在一个转换问题:
如System.out.println(new String("中国".getBytes("gbk"), "utf-8"));
System.out.println(new String("中国".getBytes("utf-8"), "gbk"));
//将“中国“的gbk编码格式按着utf-8解析,或者反过来都会出现乱码。
如浏览器当前为gbk编码,就以gbk编码格式来提交。 这本身是不会出现乱码的,问题就出在Web服务器接收数据的时候,HttpServletRequest在将客户端传来的数据转成ucs2码上出了问题。在默认情况下,是按着iso-8859-1编码格式来转的,而这种编码格式并不支持中文,所以也就无法正常显示中文了,解决这个
问题的方法是用和客户端浏览器当前编码格式一致的编码来转换,如果是utf-8,则在doPost方法中应该用以下的语句来处理:
request.setCharacterEncoding("utf-8");
如System.out.println(new String("中国".getBytes("gbk"), "utf-8"));
System.out.println(new String("中国".getBytes("utf-8"), "gbk"));
//将“中国“的gbk编码格式按着utf-8解析,或者反过来都会出现乱码。
如浏览器当前为gbk编码,就以gbk编码格式来提交。 这本身是不会出现乱码的,问题就出在Web服务器接收数据的时候,HttpServletRequest在将客户端传来的数据转成ucs2码上出了问题。在默认情况下,是按着iso-8859-1编码格式来转的,而这种编码格式并不支持中文,所以也就无法正常显示中文了,解决这个
问题的方法是用和客户端浏览器当前编码格式一致的编码来转换,如果是utf-8,则在doPost方法中应该用以下的语句来处理:
request.setCharacterEncoding("utf-8");
全部回答
- 1楼网友:摧毁过往
- 2021-04-06 19:32
java中utf-8转gbk之所以不会出现中文乱码,是因为utf-8编码为兼容性最大的字符集编码,它本身就支持中文字符。
java代码转码范例:
string s = new string(ss.getbytes(),"gbk");
当你的内容本来就是正常的中文字符时,通过上面的语句转为gbk编码是不会有任何问题的,但如果你在转码之前的字符不是正确的中文字符,或者不是支持中文字符的字符集,那可能就会出现乱码问题。
utf-8(8-bit unicode transformation format)是一种针对unicode的可变长度字符编码,又称万国码。由ken thompson于1992年创建。现在已经标准化为rfc 3629。utf-8用1到6个字节编码unicode字符。用在网页上可以同一页面显示中文简体繁体及其它语言(如英文,日文,韩文)。
在java开发中,特别是web开发,乱码是一种很常见而且很头疼的问题,这常常是由于页面端、服务端、数据库等几处所使用的字符不一致所致,故开发中,保持编码一致, 往往能减少由于乱码而带来的时间浪费,是一件非常重要的事情。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
• 手机登qq时,显示手机磁盘不足,清理后重新登 |
• 刺客的套装怎么选啊? |