中易网

utf8转gbk个别中文出现乱码。

答案:2  悬赏:10  
解决时间 2021-04-07 11:26
比如海淀的“淀”字,如果输入的是海淀区,就变成了海??,把“淀”字去掉,就对了。
这个字也不是生僻字吧,为什么会乱码,不懂。。。

String unicode = new String(utf8.getBytes(), "UTF-8");
String gbk = new String(unicode.getBytes("GBK"));

其中,第一句中的utf8变量是一个utf-8编码的字符串。
由于程序的编码格式为GBK,需要进行转换。
第二行的gbk变量出现了上述乱码。
最佳答案
这其中存在一个转换问题:
如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");
全部回答
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开发,乱码是一种很常见而且很头疼的问题,这常常是由于页面端、服务端、数据库等几处所使用的字符不一致所致,故开发中,保持编码一致, 往往能减少由于乱码而带来的时间浪费,是一件非常重要的事情。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
从哪里看出刘翔与约翰逊起初的差距大
辉华购物中心下浒分店地址在什么地方,想过去
行李安检的x射线和手机辐射哪个更强
刚签了劳动合同不做了毁约会有事吗
地铁6号线首班车时间是几点
刚毕业的本科生薪资平均多少?
苗床消毒用什么比较好一些?
成都金苹果博文幼儿园和文轩yoyo幼儿园哪家好
印刷中造成漏白情况的原因是什么?
厉旭圭贤亲嘴在哪个节目
张记生滚粥地址有知道的么?有点事想过去
什么叫带电接火
从抚顺北站到何氏医学院打车多少钱
福建华荣海运集团股份有限公司厦门办事处怎么
朵一本草好口气喷剂真的还是假的
推荐资讯
低频信号在通过无线传输前,一般需要调制,为
女人换衣服穿是什么意思
为了保证人们的工作和学习,环境的声音不能超
万州贫困的小学生名单
做粉末冶金烧结时,由于成分不同,每次混料后
excel中合并单元格筛选设置成功后,新增行数
3dvray渲染很慢,渲小图都快好几个小时,是什
新天地KTV量贩这个地址在什么地方,我要处理
去成都火车北站接人车停在哪儿呢?看地图说北
就是怎么给sina微博发邮件
征地是按户口地址还是按地方来补偿的?
谁认识这4个字 古代的字 不知道是什么意思
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?