在日常开发当中, 我们可能遇到要将某个页面的参数通过 url 链接拼接的方式传递到另一个页面当中, 在另一个页面当中进行使用, 如果传输过去的是中文, 那么可能会遇到中文乱码问题, 那么该如何来解决呢?
JavaScript 解决 url 中文乱码的方法:
方法一:
<!--test01.html-->
- <!DOCTYPE HTML>
- <HTML>
- <head>
- <meta charset="UTF-8">
- <title>
- Title
- </title>
- <script src="https://cdn.bootCSS.com/jquery/2.1.4/jquery.min.js">
- </script>
- </head>
- <body>
- <div id="userName">
- 你好明天
- </div>
- <div οnclick="send();">
- 点击测试
- </div>
- <script>
- function send() {
- var url = "test02.html";
- var userName = $("#userName").HTML();
- // Windows.open(encodeURI(url + "?userName=" + userName)); //encodeURI 针对整个参数进行编码
- Windows.open(url + "?userName=" + encodeURIComponent(userName)); //encodeURIComponent 针对单个参数进行编码
- }
- </script>
- </body>
- </HTML>
方法二:
<!--test02-->
- <!DOCTYPE HTML>
- <HTML>
- <head>
- <meta charset="UTF-8">
- <title>
- Title
- </title>
- <script src="https://cdn.bootcss.com/jquery/2.1.4/jquery.min.js">
- </script>
- </head>
- <body>
- <div id="userName">
- </div>
- <script>
- var urlinfo = Windows.location.href; // 获取 url
- var userName = urlinfo.split("?")[1].split("=")[1]; // 拆分 url 得到 "=" 后面的参数
- // $("#userName").HTML(decodeURI(userName)); //decodeURI 针对整个参数进行解码
- $("#userName").HTML(decodeURIComponent(userName)); //decodeURIComponent 针对单个参数进行解码
- // $("#userName").HTML(userName);
- </script>
- </body>
- </HTML>
针对中文乱码问题, 最主要是通过 (encodeURI,decodeURI),(encodeURIComponent,decodeURIComponent) 两种方法进行参数的编码以及解码工作, 其中 xxxxURI 最主要针对的是整个 url 参数, xxxxURIComponent 针对的是当个 url 参数;
来源: http://www.css88.com/qa/javascript/11130.html