如何让浏览器不自动转码

遇到了一个问题,vue.js做的项目,使用vue-router的query传递一个参数:

const daihao = '%F7%C8%C1%A6%BA%FC%C0%EA%CA%E9%CE%DD';
this.$router.push({
    name: 'home',
    query: {
        daihao: daihao
    }
});

但是浏览器上看到的是:

home?daihao=%25F7%25C8%25C1%25A6%25BA%25FC%25C0%25EA%25CA%25E9%25CE%25DD

百分号%被自动转码了,但是我直接传中文却不会被转码,这是为什么?因为要做一个分享功能并且兼容以前的代码,需要url保持一直不能被转码,有办法解决吗

阅读 6.9k
3 个回答

自己转base64可以避免这种情况

传中文也会被转码,只不过有些浏览器支持展示中文。不信你复制下中文 url 出来粘贴下

不同的浏览器对%可能处理方式不一样,我建议你自己先转码,然后接受的时候再解码,避免这个问题。就像楼上所说的转base64,或者你可以使用自己喜欢的转码方式

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题