UTF-8編碼的漢字:少數是漢字每個占用3個位元組,多數占用4個位元組 # GET請求編碼 Chrome會先把URL中非ASCII字元按照某種編碼格式(谷歌瀏覽器是UTF-8)編碼成byte數組後,然後轉成16進位數組,然後在每個16進位數字前加上&分割 eg: 地址欄:http://localhost ...
UTF-8編碼的漢字:少數是漢字每個占用3個位元組,多數占用4個位元組
# GET請求編碼
Chrome會先把URL中非ASCII字元按照某種編碼格式(谷歌瀏覽器是UTF-8)編碼成byte數組後,然後轉成16進位數組,然後在每個16進位數字前加上&分割
eg:
地址欄:http://localhost/eee.php?b=1zpeasy牛逼 回車
我們發現瀏覽器發送的請求是: http://localhost/eee.php?b=1zpeasy%E7%89%9B%E9%80%BC
也就是瀏覽器在發送請求前給編碼處理了,首先是把非ASCII字元牛逼->二進位位元組樓->16進位位元組流 E7899BE980BC->%E7%89%9B%E9%80%BC
編碼轉換網址:UTF-8編碼轉換器-ME2線上工具 (metools.info)
# GET接收解碼
互聯網上的所有數據都是位元組傳輸的,當伺服器接受過來接受過來之後,首先會對url這一塊解碼,解碼出http://localhost/eee.php(這部分解碼是根據伺服器配置文件設置的,列入tomcat <Connector URIEncoding="UTF-8">)
關於參數的解碼這裡不再贅述,詳情可參考http請求(GET/POST)時,url/參數編碼的過程分析_個人文章 - SegmentFault 思否
# POST請求編碼
post提交參數時也是要編碼的,和GET方式類似