关于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















