文章详情页
express - node.js中req.params的问题
浏览:123日期:2024-08-01 11:03:06
问题描述
在express4.x中使用req.params读取URL中的参数,当参数为中文时,req.url输出的中文为十六进制,而req.params输出的确是中文,我想问一下使用req.params是不是调用了什么或是默认哪种解码方式
问题解答
回答1:肯定是UTF-8编码,因为当前官方node仅仅支持UTF-8一种多字节编码方式,utf-8中一个汉字由三个字节构成,你观看url中16进制编码正好是12个字节,通过这个也可以验证。req.body req.query req.params 把转码的多字节都会反转回来。
回答2:这个是urlencode。用url-safe的字符集进行编码的。
js里用encodeURI和decodeURI进行编码解码的。其他语言也提供了类似的方法。
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。
望采纳。
相关文章:
1. javascript - Jquery click()事件的禁用2. javascript - Angular利用 broadcast和 on实现页面跳转并且传递数据 但是跳转后收不到数据3. java - 图片上传后,立即访问出现404,重新部署项目后正常可以访问4. css - chrome浏览器input记录上次cookie信息后,有个黄色背景~如何去除!5. html - css 文件内,有的样式没调用, 有没有工具删除这部分没调用的内容?6. javascript - easyui textbox绑定onchange事件不能获取最新的文本框的值7. javascript - node引入文件路径中的@是什么意思?8. PHP类中的$this9. javascript - 请教如何获取百度贴吧新增的两个加密参数10. 单元格本来是写文字的地方插入背景图片,这种方式正确吗?
排行榜
