web编程中的汉字乱码问题

本文探讨了在CS编程中遇到的汉字乱码问题及其解决方案,重点介绍了如何控制编码过程以避免乱码,并提供了将乱码的汉字重新编码以解决实际问题的Java方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CS编程中,经常会遇到汉字编码问题。

之所以会这样,就是因为客户端与服务端两边的编码方式不统一,我们知道在网络通信中,字符串都会通过一定的编码方式转化成字节流发送,服务器在收到字节流后会根据一定的规则来解码出字符串,由于双方的不统一,解码与编码不一致就出现了汉字乱码的问题。

为解决这个问题,首先自己能控制的转码尽量自己控制,比如java servlet中HttpServletResponse.getOutputStream(),这个流可以传递字节流,也可以经过包装后传递一个字符串,当然传递字符串会由函数自己先转换成字节流再进行传递,这种情况下我们尽量自己控制编码过程,即自己来获得字节流,字节流获得方法String.getBytes("utf-8") ,这样传递至少我们能确定编码方式,当然就控制了汉字乱码。虽然HttpServletResponse.setCharacterSet也能设置编码方式,但这个方法几乎没有解决过我的乱码问题。

如果自己控制不了编码,目前遇到最常见的一种错误:大家在两端都会把编码设成utf-8,但汉字依然乱码。这时候一般原因是编码的时候正确,而解码的时候却采用ISO-8859-1,因此我们就需要将乱码的汉字重新以ISO-8859-1方式编码,再用utf-8解码。java中的方法为 String str=new String(str.getBytes("ISO-8859-1"),"utf-8");当然这种方式需要你知道两端的编码方式。

至于其它情况,本人能力有限,如大家有何高见,不吝赐教。共勉。。。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值