url encode

常用的两种方法:

var str = encodeURI("中国");
var str = encodeURIComponent("中国");//baidu用的是这个方法

经过编码后的url在服务器上不用调用url_decode解码,服务器会
直接解析。
有一点要说明的是:在Firefox3中,即使你进行了url encode,
如果字符编码是[color=red]UTF-8[/color],
那么Firefox3是会把你编码过的中文自动显示为正常的中文,
给人一种错觉,以为是自己encode不成功,还有即使你在服务端用
url_encode编码了一个url,Firefox3还是会自动把它解析为正常的中文显示。
这个现象在ie6下没有发生,其他浏览器也没测试过。

google用的是UTF8编码,所以在FF下可以看见中文关键字。
baidu用的是gb2312编码,所以在FF下看到关键字都是经过编码的。
### Java中的URL编码方法 在Java中,可以使用`java.net.URLEncoder`类来实现URL编码的功能。该工具类提供了静态方法用于将字符串转换为应用/x-www-form-urlencoded MIME格式[^6]。 #### 使用 `URLEncoder.encode()` 方法 以下是通过 `URLEncoder.encode(String s, String enc)` 进行URL编码的一个简单示例: ```java import java.io.UnsupportedEncodingException; import java.net.URLEncoder; public class URLEncodeExample { public static void main(String[] args) { try { String data = "name=John Doe&city=New York"; String encodedData = URLEncoder.encode(data, "UTF-8"); System.out.println(encodedData); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } } ``` 上述代码片段展示了如何利用指定字符集(这里是 UTF-8)对给定数据进行编码。需要注意的是,在实际开发过程中应处理可能抛出的异常情况,即 `UnsupportedEncodingException`[^7]。 #### 自定义编码需求 如果项目中有更复杂的编码需求或者希望集成第三方库,则可考虑Apache Commons Codec 或 Google Guava这类成熟的开源解决方案。这些库通常提供更为灵活丰富的功能支持[^8]。 例如采用 Apache HttpClient 的方式来进行请求参数构建时自动完成url encode操作: ```java List<NameValuePair> params = new ArrayList<>(); params.add(new BasicNameValuePair("paramName", "value with spaces")); String paramString = EntityUtils.toString(new UrlEncodedFormEntity(params)); // 输出的结果已经是经过适当转义后的形式 System.out.println(paramString); ``` 此段落说明了除了标准库外还有其他途径能够满足特定场景下的高级定制化要求[^9]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值