黑马程序员技术交流社区

标题: 服务器中的GBK数据过去,如果iso8859-1不能正确解码, [打印本页]

作者: 郑彬    时间: 2012-8-21 17:32
标题: 服务器中的GBK数据过去,如果iso8859-1不能正确解码,
服务器中的GBK数据过去,如果iso8859-1不能正确解码,怎么解决呢?

作者: 丰亚彬    时间: 2012-8-21 21:55
思路:服务器的数据以GBK编码,你在响应头就告诉浏览器你的数据编码形式。
具体的就是在http响应头的里添加一个属性content-type=text/html;charset=GBK
作者: 杜鹏云    时间: 2012-8-22 16:32
你的问题其实就是因为服务器解码和浏览器编码不同造成的,具体的做法是这么处理
1,客户端发送GBK编码的字节码。
2,服务器端接受GBK编码的字节码,并用ISO8859—1解码,获取解码后的字符串
3,服务器端将ISO8859—1解码后的字符串再次进行编ISO8859-1编码。
4,服务器端将ISO8859-1编码后的字节码进行,GBK解码,即可获取客户端发送的字符串。
这个方法的原理如下图:


QQ截图20120822163227.png (36.5 KB, 下载次数: 19)

QQ截图20120822163227.png

作者: ゛﹏_小三No°    时间: 2012-8-22 16:47
重新编码
在解码。
作者: 郑彬    时间: 2012-8-22 23:27
杜鹏云 发表于 2012-8-22 16:32
你的问题其实就是因为服务器解码和浏览器编码不同造成的,具体的做法是这么处理
1,客户端发送GBK编码的字 ...

为什么要重新编码再解码呢?干嘛不直接一开始就用用GBK解码呢?
作者: 郑彬    时间: 2012-8-22 23:27
郑彬 发表于 2012-8-22 23:27
为什么要重新编码再解码呢?干嘛不直接一开始就用用GBK解码呢?

为什么要重新编码再解码呢?干嘛不直接一开始就用用GBK解码呢?
作者: 郑彬    时间: 2012-8-22 23:28
为什么要重新编码再解码呢?干嘛不直接一开始就用用GBK解码呢?
作者: 杜鹏云    时间: 2012-8-23 17:10
因为我们本地浏览器发出去的字节码是通过GBK编码的,而tomcat等服务器是老美写的。。他不支持GBK解码。 它支持ISO8859-1。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2