javascript - javascript uriencode 增加大小
问题描述
我有一个 1586 个字符长的中文文本,而 Javascript encodeURIComponent 最终有 10522 个字符长,不能作为 URL 行中的参数发送给 PHP 处理?(PHP 错误信息 URI 太长)
第一个问题是为什么 encode 的字符串长度增加了近 7 倍?第二个问题是如何绕过。
解决方案
汉字是由更多的字节组成的,你可以在这里查看单个字符的组成:https ://mothereff.in/byte-counter这样你就可以得到 3 倍的增长。
此外,URI 编码将具有特殊含义的字符扩展为更多具有更安全含义的字符:https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent
把这两者放在一起,你所看到的增加 7 是有道理的。
至于如何绕过它,它真的取决于服务器,即如果它是一个可配置的属性,你可以增加它。但是正如其他人在评论中所建议的那样,如果您遇到 URI 太长的错误,您的方法可能是错误的。
推荐阅读
- npm - npm 忽略 git+https 设置并在 package-lock.json 中使用 git+ssh
- python - Python 多项选择游戏不会在一次选择后结束
- karate - 能够在功能和场景名称中使用环境变量
- typo3 - 图像方向选择的图标大小
- javascript - 如何使用 JavaScript 中的此代码添加命令以在浏览器中启动新选项卡?(等)(带终端)
- c# - RestSharp 返回 ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, sslPolicyErrors) => true;
- scrapy - Scrapy spidermon 异常
- firebase - 如何在颤振中添加多个图像(firebase)
- python - 计算两步过程的每日平均持续时间
- c# - 加载/刷新时 ASP.net eTag 缓存缩略图