JS 传递URL带中文的参数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS 传递URL带中文的参数相关的知识,希望对你有一定的参考价值。

主页面的代码:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<script language="javascript" type="text/JavaScript">
var xmlHttp = false;
try
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
catch (e)
try
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
catch (e2)
xmlHttp = false;


if (!xmlHttp && typeof XMLHttpRequest != 'undefined')
xmlHttp = new XMLHttpRequest();

function nbzja()
var ss_bzn = document.getElementById("n_bz").value;
if ((ss_bzn == null) || (ss_bzn == "")) return;
var url = "qreg.php?ss_bzn=" + escape(ss_bzn);
xmlHttp.open("GET",url, true);
xmlHttp.onreadystatechange = updatePage;
xmlHttp.send(null);

function updatePage()
if (xmlHttp.readyState < 4)
ss_nbz.innerHTML="正在搜索......";

if (xmlHttp.readyState == 4)
var response = xmlHttp.responseText;
ss_nbz.innerHTML=response;


</script>
</head>
<body>
<form>
<input name="n_bz" type="text" id="n_bz" size="25" onchange="nbzja()" />
<div id="ss_nbz"></div>
</form>
</body>
</html>

接收页面的代码:
<?php echo $_GET['ss_bzn'] ;?>
如果是中文就显示 乱码 请告诉帮忙解决一下

参考技术A escape改成encodeURIComponent

// var url = "qreg.php?ss_bzn=" + escape(ss_bzn);

var url = "qreg.php?ss_bzn=" + encodeURIComponent(ss_bzn);追问

Illegal mix of collations (gb2312_chinese_ci,IMPLICIT) and (gbk_chinese_ci,COERCIBLE) for operation 'like'
这个事哪里出问题啊,,我把接收到的值 给数据库查找关键字 怎么出现这个错误啊!~
这个错误时 数据库的,,请问怎么给这个数据库 一个 变中文的参数啊!!~

追答

不好意思,不动后端的。

追问

有没有办法帮我解决一下 这个问题!!~

怎么用js来加密url的传递参数

加密代码
function eb(ting)

//传入要加密的url
//获取url参数部分
var paraString = ting.substring(ting.indexOf("?")+1,ting.length);
//将加密后的参数重新组合到url中
var rul=ting.substring(0,ting.indexOf("?")+1)+escape(paraString);
//跳转到rul页面呢
location.href=rul;

解密代码
var urlPara = location.search; //获取参数部分
urlPara=unescape(urlPara);//对参数解密
//分析参数
function getPara(paraName)
var reg = new RegExp("[&|?]"+paraName+"=([^&$]*)", "gi");
var a = reg.test(urlPara);
return a ? RegExp.$1 : "";

//捕获参数并进行操作
//window.onload = function()
//var url= getPara("id"); //捕获到url参数
//document.getElementById("TextBox1").value = url;
//
参考技术A js对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent

1.传递参数时需要使用encodeURIComponent,这样组合的url才不会被#等特殊字符截断。

例如:<script language="javascript">document.write('<a href="http://passport.baidu.com/?logout&aid=7&u='+encodeURIComponent("http://cang.baidu.com/bruce42")+'">退出</a>');</script>

2.进行url跳转时可以整体使用encodeURI

例如:Location.href=encodeURI("http://cang.baidu.com/do/s?word=百度&ct=21");

3. js使用数据时可以使用escape

例如:搜藏中history纪录。

4.escape对0-255以外的unicode值进行编码时输出%u****格式,其它情况下escape,encodeURI,encodeURIComponent编码结果相同。本回答被提问者采纳
参考技术B Oh! A matchstick is useful for her.

以上是关于JS 传递URL带中文的参数的主要内容,如果未能解决你的问题,请参考以下文章

Url的参数转变成json

小程序之带参数跳转到tab页

解决JS在url中传递参数时参数包含中文乱码的问题

解决JS在url中传递参数时参数包含中文乱码的问题

django % url % 带参数(字典列表)

abap如何获取url后面参数