该用gbk还是utf-8,还是utf-16解码为可见文字?http协议头中的charset都是可以多种的。
具体哪一种怎么确定?
何况如果解码方式不对,连协议头也解码不出来

解决方案 »

  1.   

    你都自己去实现HTTP协议了,这还不好办?一切都是你说了算啊
    你在发送端对编码进行处理,然后在接收端反处理,有点类似加密和解密
    协议的格式完全由你控制,比如你处理发送端的UTF-8时,可以再协议头里
    用代号表示,如:001,那么在接收端分析出是什么代号就行了
      

  2.   

    如果只是实现http客户端呢,服务端是别人的,怎么知道他response的utf-8,还是utf-16?
      

  3.   

    1. 首先你在GET的时候指定了编码方式,详情请查看http协议GET /hello.htm HTTP/1.1
    Accept: */*
    Accept-Language: zh-cn
    Accept-Encoding: gzip, deflate
    If-Modified-Since: Wed, 17 Oct 2007 02:15:55 GMT
    If-None-Match: W/"158-1192587355000"
    User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
    Host: 192.168.2.162:8080
    Connection: Keep-Alive2. 服务器端返回的内容指定了编码格式,如果没有,则用默认的,比如ISO-8859
      

  4.   

    accept_charset="iso-8859-1, utf-8, utf-16, *;q=0.1";这个才是指定request的编码的
    如果不知道是utf-8还是utf-16,是无法解析出response中的http头的。因为1个字节和两个字节的问题。我突然想到,难道是用程序来判断字节流的编码是utf-8还是utf-16? 恩。很可能!
      

  5.   

    http://greenbytes.de/tech/webdav/rfc5987.html#usage.guidelines头的编码是有协议的
      

  6.   

    楼上的意思是http头必须固定是utf-8的是吗?那就明白了。谢谢。