问题源自于大傻同学的需求:A.html的参数传给B.html。必须是在B.html中用js代码来获取该url中的中文参数。。。

网上的类似问题:http://bbs.chinaunix.net/viewthread.php?tid=887933   未解决。

正常情况下,我们在后台获取request传递过来的中文参数都比较好处理。但是这哥们,是直接从html页面跳转到另一个html页面中,然后当另一个html加载完后运行js来获取当前的url中的中文参数。实际上浏览器在把参数传递过来的时候,已不在是中文了,而是%2F%B0%D9%B6%C8%BF%D5%BC%E4格式的字符串了。即使url中显示的是中文,使用window.location.search.substring(1)获取的字段也是类似于%2F%B0%D9%B6%C8%BF%D5%BC%E4的字符串。

显然到这一步为止,我们希望有一个js自带的函数把%2F%B0%D9%B6%C8%BF%D5%BC%E4这样的字符串解析了就行了。

实际上,确实存在这样的一个函数。哈哈哈,这样问题就解决了。先对中文进行编码,然后解码。

通过解决这个问题还学了不少js的东西。

1.js控制页面跳转的方法:

Code:
  1. 第一种:
  2. <script language="javascript">
  3. window.navigate("top.jsp");
  4. </script>
  5. 第二种:
  6. <script language="JavaScript">
  7. self.location='top.htm';
  8. </script>
  9. 第三种:
  10. <script language="javascript" type="text/javascript">
  11. window.location.href="login.jsp?backurl="+window.location.href;
  12. </script>
  13. 第四种:
  14. <script language="javascript">
  15. alert("返回上一页面");
  16. window.history.back(-1);
  17. </script>
  18. 第五种:
  19. <script language="javascript">
  20. alert("非法访问,请终止!");
  21. top.location='xx.jsp';
  22. </script>

2.中文参数的编码和解码

http://www.w3school.com.cn/js/jsref_escape.asp

3.javascript解析url参数【把参数分离解析出来而已】

Code:
  1. <script type="text/javascript">
  2. var LocString=String(window.document.location.href);
  3. function getQueryStr(str){
  4. var rs = new RegExp("(^|)"+str+"=([^/&]*)(/&|$)","gi").exec(LocString), tmp;
  5. if(tmp=rs){
  6. return tmp[2];
  7. }
  8. // parameter cannot be found
  9. return "";
  10. }
  11. console.log(getQueryStr("parameter_name"));
  12. </script>

4.常识

Jsp页面使用URL编码传递中文参数的情况下,在参数的解析过程中会出现乱码。由于java在设计的时候考虑到了国际化的问题,
在java源程序编译成字节码的时候默认使用的是UTF-8编码。而在web运用上,由于不同的浏览器向服务器发送的信息采用的编码
方式不同,在由像tomcat之类的服务器解码的时候会由于编码方式的不同而产生乱码,这是一个会困扰jsp初学者很久的问题。
【http://www.360doc.com/content/10/0317/10/633992_19086741.shtml】
下角同学问题的解决的Demo:
A.html
Code:
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>test1</title>
  6. <script type="text/javascript">
  7. function c(){
  8. var  t= document.form1.t.value;
  9. console.log(t);
  10. console.log(escape(t));
  11. console.log(unescape(t));
  12. self.location='xiajiao2.html?t='+escape(t);
  13. }
  14. </script>
  15. </head>
  16. <body>
  17. <form id="form1" name="form1" action="xiajiao2.html" method="get">
  18. <input type="text" id="t" name="t" />
  19. <input type="button" onclick="return c()" value="搜索"  />
  20. <br />
  21. 中国人
  22. </form>
  23. </body>
  24. </html>

B.html

Code:
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <script language="javascript" type="text/javascript" src="static/login_scr/jquery-1.3.2.js"></script>
  6. <title>test2</title>
  7. <script type="text/javascript">
  8. var LocString=String(window.document.location.href);
  9. function getQueryStr(str){
  10. var rs = new RegExp("(^|)"+str+"=([^/&]*)(/&|$)","gi").exec(LocString);
  11. var tmp;
  12. if(tmp=rs){
  13. return tmp[2];
  14. }
  15. return "";
  16. }
  17. $(document).ready(function() {
  18. console.log(unescape(getQueryStr("t")));
  19. alert(unescape(getQueryStr("t")));
  20. //  var t=window.location.search.substring(1);
  21. });
  22. </script>
  23. </head>
  24. <body>
  25. 中国人
  26. <!--<form id="form1" action="xiajiao2.html" method="get">
  27. <input type="submit" onclick="return check_register()" value="搜索"  />
  28. </form>-->
  29. </body>
  30. </html>

js获取当前url的中文参数相关推荐

  1. java url传参中文乱码问题_java中url传中文参数出现乱码

    缘由:java Http请求传输时将url以ISO-8859-1编码,服务器收到字节流后默认会以ISO-8859-1编码来解码成字符流(形成中文乱码).服务器 方法一:编码 咱们须要把request. ...

  2. js 获取图片url的Blob值并预览

    js 获取图片url的Blob值并预览 1)使用 XMLHttpRequest 对象获取图片url的Blob值 参考:https://www.cnblogs.com/tujia/p/6483255.h ...

  3. Java中url传递中文参数取值乱码的解决方法

    Java中url传递中文参数取值乱码的解决方法 参考文章: (1)Java中url传递中文参数取值乱码的解决方法 (2)https://www.cnblogs.com/liwenjuan/p/3211 ...

  4. HTML的Get方法URL传递中文参数,解决乱码问题

    HTML的Get方法URL传递中文参数,解决乱码问题 参考文章: (1)HTML的Get方法URL传递中文参数,解决乱码问题 (2)https://www.cnblogs.com/chenyucong ...

  5. js 获取浏览器url参数

    一.获取浏览器地址url,并将url后的参数转化为数组. var baseUrl = function GetRequest(url) { var theRequest = new Object(); ...

  6. 如何用js获取浏览器URL中查询字符串的参数

    首先要知道Location这个对象以及这个对象中的一些属性: href:设置或返回完整的url.如本博客首页返回http://www.cnblogs.com/wymninja/ host:设置或返回主 ...

  7. js传中文参数 java取_js中文转码传输java后台 适用于用url传递中文参数

    第一种方法: 解决方法如下: 1.在JS里对中文参数进行两次转码 var login_name = document.getElementById("loginname").val ...

  8. 地址html后面传参,JS中获取地址栏url后面的参数的三种方法

    这里提供了三种获取地址栏url后面参数的方法: 方式1 传参: window.location.href = "/html/bsp/user/userEdit.html?name=四个空格& ...

  9. js获取当前URL、参数、端口、IP等信息

    以下列出均为常用(转自地址为:https://blog.csdn.net/pengShuai007/article/details/78357238?locationNum=9&fps=1 1 ...

最新文章

  1. Exchange2007中创建和访问公用文件夹
  2. deepin执行apt-get update报错https://deb.opera.com/opera-stable stable Release” 没有 Release 文件N: 无法安全地用该
  3. JSON.parse使用 之 Unexpected token o in JSON at position 1 报错原因
  4. sql server 2008 年累计数_Windows Server 2008 和 SQL Server 2008将终止支持 迁移至Azure 微软提供3年免费技术支持...
  5. 我喜欢这样的老大[10-24]
  6. HDU 5950 Recursive sequence(矩阵快速幂)
  7. FreeMarker合并单元格
  8. JS 逻辑中断(二)
  9. java 设置系统参数_Java 设置系统参数和运行参数
  10. 外贸企业财务软件的选用
  11. 并发测试工具Jmeter安装与简单使用
  12. C语言找n以上最小质数,[原创]求质数(C语言描述)
  13. TortoiseSVN 如何去掉文件夹左下角的绿色对勾的方法
  14. 人工智能与复杂网络_为什么我与智能手机的关系变得复杂
  15. Mxnet训练自己的数据集并测试
  16. Java实现点击中文文字图片验证码
  17. 用按键精灵来自动投票
  18. Excel如何避免输入重复值
  19. 【手把手带你刷好题】—— 43.满足条件的两数之和(双指针、非力扣)
  20. MT7621A 硬件调试总结---(3)

热门文章

  1. flex安卓手机、苹果手机兼容问题
  2. 32位PowerPC常用指令集总结
  3. 解决WSL2的Ubuntu终端无法复制粘贴
  4. E+H差压变送器FMD78-HBA7F21B51AQ
  5. 仿抖音-视频及直播点赞效果
  6. GomTV版MV介绍
  7. img标签的onerror事件
  8. 计算机突然断电或死机 重启后,电脑突然断电后引起电脑死机! 然后就没法开机!该怎么弄?...
  9. 【机器学习】隐马尔可夫模型(HMM)
  10. 值得科普的Touch Bar实用小技巧