http://172.16.15.23/jspweb/manage/prou1.jsp?language_1=cn&productname=发贴
为什么我接收参数productname2时,
String productname = new String(request.getParameter("productname").getBytes("ISO8859_1"),"GBK");
是乱码。
我试过用String productname = new String(request.getParameter("productname"))获取也是乱码?
为什么?
怎样解决?
为什么我接收参数productname2时,
String productname = new String(request.getParameter("productname").getBytes("ISO8859_1"),"GBK");
是乱码。
我试过用String productname = new String(request.getParameter("productname"))获取也是乱码?
为什么?
怎样解决?
char c;
String strRet = "" ;
int intAsc;
String strHex;
strText = new String(strText.getBytes("ISO8859_1"),code);
for ( int i = 0; i < strText.length(); i++ ){
c = strText.charAt(i);
intAsc = (int)c;
if(intAsc>128){
strHex = Integer.toHexString(intAsc);
strRet = strRet + "&#x" + strHex+";";
}
else{
strRet = strRet + c;
}
}
return strRet ;
}
这个转换一次,就是把GB2312转成ISO8859_1,接收时再转成GB2312,还是成乱码
给一段代码,你用一下,看看可以吗??
<%!
String trans(String chi)
{
String result = null;
byte temp[];
try
{
temp = chi.getBytes("iso-8859-1");
result = new String(temp);
}
catch(UnsupportedEncodingException e)
{
System.out.println(e.toString());
}
return result;
}%>
得到的http://172.16.15.23/jspweb/manage/prou1.jsp?language_1=cn&productname_2=%u535A%u601D%u6E05是个,请问题,获取的时侯应该怎样处理呢?请不吝赐教!
<%
request.setCharacterEncoding("gb2312");
%>
就可以了!基本上能解决数据的乱码问题!特别是对于数据库的写入操作!
而且也没有必要在url上传递参数,也没有实际意义(你不会想让用户用url来传递参数吧?用户恐怕也不会乐意),也只要页面以get或者post方式提交都不存在乱码就可以了.
http://www.blogjava.net/rickhunter/articles/33571.html写转码程序不是很好的方法,不知为什么很多人都喜欢写转码程序,我所见过的项目都没有哪个写转码程序的,一个过滤器基本就搞定大部分问题,只是有个别问题需要特别对待。
mypara = new String(mypara.getBytes("iso-8859-1"),"GBK");
然后mypara就可以正常显示处理了.
另外,很好奇你需要用url传参数的理由?
传参前需要这样转换下
变量 = java.net.URLEncoder.encode(变量);
不过你在服务器上找不到UNESCAPE转回来
只能自己写或者用别人写的,这样子显然很麻烦,没必要用中文做参数
约定别的符号也一样的
String str=new String(value.getBytes("iso-8859-1"),"utf-8"));
str = java.net.URLDecoder.decode(value,"utf-8");
request.setCharacterEncoding("gb2312");
%>