如何将一个带有汉字的连接装换成比如http://search.csdn.net/search.asp?option=advance&key=bcbuider%BB%D8%B8%B4&field=username的格式

stonecsdn 2004-08-25 09:41:51
如题,我将很快揭帖
...全文
205 点赞 收藏 15
写回复
15 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
yajunmao 2004-10-15
试试看
回复
stonecsdn 2004-08-25
谢谢ZHGUY(ZGY),用了你的方法解决问题,一会给分
回复
stonecsdn 2004-08-25
但是如果在servlet中用response.sendRedirect(url),url中含有中文,在服务器端就会出现乱码,而不是%BB%D8%B8%B4
回复
stonecsdn 2004-08-25
我用的服务器是weblogic。我的页面utf-8
IE中直接用中文在URL中传送没有问题的,不过在服务器端requestURI出现%BB%D8%B8%B4
但我一样使用
回复
haitangli4 2004-08-25
关注
回复
angelheart 2004-08-25
恩~~~ stonecsdn(东东)的问题我也碰到过~~
如果用tomcat5.0的话不会出现这个问题
不知道tomcat4.0怎么解决这个问题
还有,我发现tomcat5.0有response.setCharacterEncoding()方法而4.0没有
回复
AgathaZ 2004-08-25
用URLEncoder转一下码就OK了
回复
lianeng 2004-08-25
1、可以用java.net.URLEncoder来转换,裡面有個方法是encode(String)可以處理中文參數問題。
回复
cnhxjtoa 2004-08-25
帮你UP
回复
stonecsdn 2004-08-25
我可以在浏览器里发送带有中文的连接,但是如果在servlet中使用response。sendRedirect(url)方法,url中带有中文,传到服务器端就会出现乱码
回复
stonecsdn 2004-08-25
我试试
回复
ZHGUY 2004-08-25
用这个可以
public static String toUtf8String(String s)
{
StringBuffer sb = new StringBuffer();
for (int i=0;i<s.length();i++) {
char c = s.charAt(i);
if (c >= 0 && c <= 255)
{
sb.append(c);
}
else
{
byte[] b;
try
{
b = Character.toString(c).getBytes("utf-8");
}
catch (Exception ex)
{
System.out.println(ex);
b = new byte[0];
}
for (int j = 0; j < b.length; j++)
{
int k = b[j];
if (k < 0) k += 256;
sb.append("%" + Integer.toHexString(k).
toUpperCase());
}
}
}
return sb.toString();
}
回复
asdfew345 2004-08-25
可以用java.net.URLEncoder来转换,一般使用UTF-8编码,不过有些网站不是的,比如百度的就不是。你最好先测试一下转换后的编码是不是你需要的那种。
回复
stonecsdn 2004-08-25
请各位帮忙了
回复
stonecsdn 2004-08-25
up
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2004-08-25 09:41
社区公告
暂无公告