当前位置: 首页 > news >正文

记录一下 js encodeURI和encodeURIComponent URL转码问题

  • escape:由于它已经被废弃,不建议在任何新的代码中使用。
  • encodeURI:当你需要对整个URI进行编码时使用,例如在将整个URL作为参数传递时。
  • encodeURIComponent:当你需要编码URI中的某一部分,尤其是查询字符串参数时使用。

记录一下js 和php 之间的 URL转码问题

直接结论

escape 不建议使用,新的js都不支持了,以前的转码功能
var encodedString = escape("Hello World!");
var decodedString = unescape(encodedString);
console.log(decodedString); // 输出: Hello World!
encodeURI 这个会保留http:// 这些,我感觉总出问题就是他的原因(这个时候跳转页面时候用)
var encodedURI = encodeURI("http://www.example.com/a b c.html?name=张三&age=20");
var decodedURI = decodeURI(encodedURI);
console.log(decodedURI); // 输出: http://www.example.com/a b c.html?name=张三&age=20
encodeURIComponent 推荐这个,最彻底,携带参数最好(这个时候当参数用)
var encodedURIComponent = encodeURIComponent("name=张三&age=20");
var decodedURIComponent = decodeURIComponent(encodedURIComponent);
console.log(decodedURIComponent); // 输出: name=张三&age=20

还有会把数据传递到后端php 解析 用 rawurldecode 函数

<?php
// 假设这是由encodeURIComponent()编码的字符串
$encodedString = "name=%E5%BC%A0%E4%B8%89&age=20";
// 使用rawurldecode()来解码
$decodedString = rawurldecode($encodedString);
// 输出解码后的字符串
echo $decodedString; // 输出: name=张三&age=20
?>

如果用php反向 对比 用 http_build_query函数,注意转换之后的对比(好像对汉字不是特别友好)

mixed http_build_query ( mixed $data [, string$numeric_prefix [, string $arg_separator [, int$enc_type = PHP_QUERY_RFC1738 ]]] )
  • $data: 你想要转换成查询字符串的数组或对象。
  • $numeric_prefix: 如果数组中有数字键,这个参数将作为数字键的前缀。
  • $arg_separator: 查询字符串中的参数分隔符,默认是&。
  • $enc_type: 指定如何编码URL。默认是PHP_QUERY_RFC1738,这会使用urlencode()来编码。如果设置为PHP_QUERY_RFC3986,则会使用rawurlencode()来编码。
http://www.lryc.cn/news/502118.html

相关文章:

  • 【C语言】二维前缀和/求子矩阵之和
  • SRS 服务器入门:实时流媒体传输的理想选择
  • 【ETCD】【源码阅读】configurePeerListeners() 函数解析
  • 1_ssrf总结
  • 深入解析 Redis
  • Visual Studio 2022发布UWP应用证书绑定失败
  • K8S对接ceph的RBD块存储
  • ragflow连不上ollama的解决方案
  • ACL与Prefix List(前缀列表)
  • OpenSSH和OpenSSL升级
  • 数据库继续学习
  • 车载以太网-UDPNM
  • 网页核心页面设计(第8章)
  • 在PowerShell下运行curl命令出现错误:Invoke-WebRequest : 无法处理参数,因为参数名称“u”具有二义性
  • 医疗花费预测——协方差矩阵和热力图
  • react antd tabs router 基础管理后台模版
  • 【数据结构——栈与队列】环形队列的基本运算(头歌实践教学平台习题)【合集】
  • 【数据结构——栈与队列】链栈的基本运算(头歌实践教学平台习题)【合集】
  • GIT CLONE ERROR: remote: [session-ec426a86] Access denied
  • GitHub 正式收录 MoonBit 作为一门通用编程语言!核心用户突破三万!
  • PHP中GD库的使用
  • docker安装Elasticsearch和Kibana
  • 【Linux】文件管理必备知识和基本指令
  • 欢迪迈手机商城设计与实现
  • 量化交易系统开发-实时行情自动化交易-3.4.2.3.数字货币市场深度数据
  • 有序集合ZSET【Redis对象篇】
  • 力扣-图论-9【算法学习day.59】
  • 如何选择安全、可验证的技术?
  • Allure在自动化测试中的应用
  • C# 探险之旅:第十一节 - 循环(foreach):一场“遍历”奇幻岛的大冒险!