日期:2014-05-17  浏览次数:20765 次

request.getAttribute()获取对象后强制转换问题
String a=(String) request.getAttribute("a"); 如上代码,现在有这样一个问题,a是一个url地址,里面有中文英文,现在获取对象强制转换String后发现中文没有,地址不正确了,所以就出问题了,请教怎么解决?

------解决方案--------------------
只要你传递过来的是包含中文的,转换之后应该还是包含中文。
你现在说的中文没有了,是因为你传递过来的根本就没有中文。
------解决方案--------------------
应该不会影响传递的内容才对。
------解决方案--------------------
会不会是&符号的原因,一般来说传特殊字符的参数需要转义吧,尤其是url
------解决方案--------------------
调试一下 看看里面request.getAttribute("a"); 有没有中文 。
------解决方案--------------------
解码?URLDecoder的decode(String url,"UTF-8")方法?试试 
探讨
了解了一下 我这个代码是写在java片段里面的
<% String a=(String) request.getAttribute("a");%> 大概就这个样子 听说似乎是解码的问题
请各位大侠指教下

------解决方案--------------------
应该是乱码了,试试下面的解码方法:

String filename = request.getParammeter("filename");
filename = new String(filename.getBytes("ISO-8859-1"),"UTF-8");
------解决方案--------------------
转换一下:
public String trans(String str)
{
if(str==null)
{
str="";
}
else
{
try
{
str=(new String(str.getBytes("iso-8859-1"),"GB2312")).trim();
}
catch(Exception e)
{
e.printStackTrace(System.err);
}
}
return str; 
}