搜尋

首頁  >  問答  >  主體

express - node.js中req.params的问题

在express4.x中使用req.params读取URL中的参数,当参数为中文时,req.url输出的中文为十六进制,而req.params输出的确是中文,我想问一下使用req.params是不是调用了什么或是默认哪种解码方式

天蓬老师天蓬老师2779 天前551

全部回覆(2)我來回復

  • PHP中文网

    PHP中文网2017-04-17 15:17:49

    肯定是UTF-8編碼,因為目前官方node只支援UTF-8一種多位元組編碼方式,utf-8中一個漢字由三個位元組構成,你觀看url中16進位編碼正好是12個字節,透過這個也可以驗證。
    req.body req.query req.params 把轉碼的多位元組都會反轉回來。

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-17 15:17:49

    這個是urlencode。用url-safe的字符集進行編碼的。

    js裡用encodeURIdecodeURI進行編碼解碼的。其他語言也提供了類似的方法。

    encodeURI('解码问题') // => '%E8%A7%A3%E7%A0%81%E9%97%AE%E9%A2%98'
    decodeURI('%E8%A7%A3%E7%A0%81%E9%97%AE%E9%A2%98') // => '解码问题'

    題外

    當url中出現不允許出現的字元(例如 空格符),或字元集是US-ASCII的超集的時候,使用UTF-8編碼(極特殊情況,曾使用UTF-16編碼,現已不用),使用%XX的形式表示其編碼資料。參見標準RFC3986。

    望採納。

    回覆
    0
  • 取消回覆