关于java传递中文url出现乱码的问题,请教
时间:2013-05-15
来源:互联网
本帖最后由 萧哥 于 2013-5-15 16:35 编辑
<body>
<script language="javascript">
function testfunction(){
window.open("http://www.XXX.com/search-"+testform.address.value+".html")
}
</script>
<form name="testform">
<input type="text" name="address" size="50" />
<input type="image" src="search.gif" onclick='testfunction()' />
</form></body>
点击搜索之后,到搜索页面,就会出现乱码。
本来我搜索的“我们”,结果变成“ 鎴戜滑”。
是js传递中文URL就会出现这个问题吗?我用的是GBK编码,请教这个问题怎么解决?
<body>
<script language="javascript">
function testfunction(){
window.open("http://www.XXX.com/search-"+testform.address.value+".html")
}
</script>
<form name="testform">
<input type="text" name="address" size="50" />
<input type="image" src="search.gif" onclick='testfunction()' />
</form></body>
点击搜索之后,到搜索页面,就会出现乱码。
本来我搜索的“我们”,结果变成“ 鎴戜滑”。
是js传递中文URL就会出现这个问题吗?我用的是GBK编码,请教这个问题怎么解决?
作者: 萧哥 发布时间: 2013-05-15
按钮调用函数应该是双引号,但是我用双引号论坛页面就显示不出来,暂时用单引号代替。
作者: 萧哥 发布时间: 2013-05-15
把字符串encodeurl编码一下
作者: bb73 发布时间: 2013-05-18
这是javascript,不是java...中文url最好urlencode一下
作者: qxhy123 发布时间: 2013-05-18
解决方法如下:
1、在JS里对中文参数进行两次转码
复制代码 代码如下:
var login_name = document.getElementById("loginname").value;
login_name = encodeURI(login_name);
login_name = encodeURI(login_name);
2、在服务器端对参数进行解码
复制代码 代码如下:
String loginName = ParamUtil.getString(request, "login_name");
loginName = java.net.URLDecoder.decode(loginName,"UTF-8");
1、在JS里对中文参数进行两次转码
复制代码 代码如下:
var login_name = document.getElementById("loginname").value;
login_name = encodeURI(login_name);
login_name = encodeURI(login_name);
2、在服务器端对参数进行解码
复制代码 代码如下:
String loginName = ParamUtil.getString(request, "login_name");
loginName = java.net.URLDecoder.decode(loginName,"UTF-8");
作者: cslgpl 发布时间: 2013-05-21
我也出现过这种问题,我是用js跨域来提交中文的。
我的解决方法是:
下面这两个是网上找的js的urlencode函数方法:
在php中还需要对接到的中文进行转码操作
function myUrldecodeUtf8($str)
{
$encode = mb_detect_encoding($str, array("ASCII","UTF-8","GB2312","GBK","BIG5"));
$str = iconv($encode,'UTF-8',$str);
return $str;
}
我这边将sql进入log文件是正常的,但一进数据库就乱码了,所以进行了一下转码。
希望对你有所帮助。
这个js函数UnicodeChr内容很多,不让发!
我的解决方法是:
下面这两个是网上找的js的urlencode函数方法:
function UnicodeChr(){ return ''; } function UnicodeToAnsi(chrCode) { var chrHex=chrCode.toString(16); chrHex="000"+chrHex.toUpperCase(); chrHex=chrHex.substr(chrHex.length-4); var i=UnicodeChr().indexOf(chrHex); if(i!=-1) { chrHex=AnsicodeChr().substr(i,4); } return parseInt(chrHex,16); } function AnsiToUnicode(chrCode) { var chrHex=chrCode.toString(16); chrHex="000"+chrHex.toUpperCase(); chrHex=chrHex.substr(chrHex.length-4); var i=AnsicodeChr().indexOf(chrHex); if(i!=-1) { chrHex=UnicodeChr().substr(i,4); } return parseInt(chrHex,16) } function str2asc(str) { var n = UnicodeToAnsi(str.charCodeAt(0)); var s = n.toString(16); return s.toUpperCase(); } function asc2str(code) { var n = AnsiToUnicode(code); return String.fromCharCode(n); } function UrlEncode(str) { var ret=""; var tt=""; var strSpecial="!\"#$%&'()*+,/:;<=>?[]^`{|}~%"; for(var i=0;i<str.length;i++){ var chr = str.charAt(i); var c=str2asc(chr); tt += chr+":"+c+"n"; if(parseInt("0x"+c) > 0x7f){ ret+="%"+c.slice(0,2)+"%"+c.slice(-2); }else{ if(chr==" ") ret+="+"; else if(strSpecial.indexOf(chr)!=-1) ret+="%"+c.toString(16); else ret+=chr; } } return ret; } function UrlDecode(str){ var ret=""; for(var i=0;i<str.length;i++){ var chr = str.charAt(i); if(chr == "+"){ ret+=" "; }else if(chr=="%"){ var asc = str.substring(i+1,i+3); if(parseInt("0x"+asc)>0x7f){ ret+=asc2str(parseInt("0x"+asc+str.substring(i+4,i+6))); i+=5; }else{ ret+=asc2str(parseInt("0x"+asc)); i+=2; } }else{ ret+= chr; } } return ret; }
在php中还需要对接到的中文进行转码操作
function myUrldecodeUtf8($str)
{
$encode = mb_detect_encoding($str, array("ASCII","UTF-8","GB2312","GBK","BIG5"));
$str = iconv($encode,'UTF-8',$str);
return $str;
}
我这边将sql进入log文件是正常的,但一进数据库就乱码了,所以进行了一下转码。
希望对你有所帮助。
这个js函数UnicodeChr内容很多,不让发!
作者: 枫叶 发布时间: 2013-05-23
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28