Android学习记录(十八)-url转义继续填坑之旅

原创 2016年05月30日 20:02:01

前面的blog其实很坑。。。

先来说几个概念:

URI :Uniform Resource Identifier,统一资源标识符;

URL:Uniform Resource Locator,统一资源定位符;

URN:Uniform Resource Name,统一资源名称。

其中,URL,URN是URI的子集。

Web上地址的基本形式是URI,它代表统一资源标识符。有两种形式:

URL:目前URI的最普遍形式就是无处不在的URL或统一资源定位器。

URN:URL的一种更新形式,统一资源名称(URN, Uniform Resource Name)不依赖于位置,并且有可能减少失效连接的个数。但是其流行还需假以时日,因为它需要更精密软件的支持。

URI是以某种统一的(标准化的)方式标识资源的简单字符串。

通常情况下,我们都会使用utf-8的url转码方式。

但是当你碰到一个比你还不靠谱的后端时,他告诉的信息是这样的:

我们._-$,;~()/这些字符不转义。。。

public static String encode(String s) {
    return encode(s, null);
}

/**
 * Encodes characters in the given string as '%'-escaped octets
 * using the UTF-8 scheme. Leaves letters ("A-Z", "a-z"), numbers
 * ("0-9"), and unreserved characters ("_-!.~'()*") intact. Encodes
 * all other characters with the exception of those specified in the
 * allow argument.

你有没有一种风中凌乱的感觉。。。。


这个时候URI.encode已经救不了你了。


还好还有这个。。。

public static String encode(String s, String allow) {
    if (s == null) {
        return null;
    }

String allowedChars="._-$,;~()/";
String urlEncoded = Uri.encode(url, allowedChars);

收工!




版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

URL转义

URL中的字符只能是ASCII字符,但是ASCII字符比较少,而URL则常常包含ASCII字符集以外的字符,如非英语字符、汉字、特殊符号等等,所以要对URL进行转换。这个过程就叫做URL编码,或者叫U...
  • sunhuwh
  • sunhuwh
  • 2014年12月09日 00:05
  • 39167

url特殊字符转义及解决方法

URL特殊字符需转义    1、空格换成加号(+)   2、正斜杠(/)分隔目录和子目录   3、问号(?)分隔URL和查询   4、百分号(%)制定特殊字符   5、#号指定书签   6、&号分隔参...
  • zljjava
  • zljjava
  • 2014年08月04日 20:19
  • 59299

Android学习记录(六) 记录一下最近遇到的坑:url转义遇到的问题

对于未进行url转义的http地址,对于特殊字符如: []+空格等都需要url转义。 当使用httpclient无法接收java.encode转义的结果。 解决方法: http://stack...

url转义字符

实例说明url转义需求 在需要重定向的url中如果有参数,那么可能会出现问题 比如: abc.action?reurl=cde.action?p1=a&p2=2&p3=3 我在下一个actio...

http url转义字符,特殊字符

http url转义字符,特殊字符

Android网络请求时,汉字转化为url编码

java中的url 编码与解码

android处理url中的特殊字符

java处理url中的特殊字符(如&,%...) URL(Uniform Resoure Locator,统一资源定位器)是Internet中对资源进行统一定位和管理的标志。 一个完整的URL包括如下...

http请求数据包含特殊字符处理(java)

问题描述:android客户端与后台进行网络请求的时候,为了安全起见,我们采用的方法一般是加签名,这个签名可以是Base64加密过的,或是RSA加密过的,这些签名的共同特点就是一大长串字符串,里面包含...

Android URLEncoder 转译中文

今天做了 关键词搜索,需要将关键词汉字 作为参数 通过接口一起传给后台,当时没有对汉字进行特殊字符处理 让我痛苦了好一会,后来打印了一下连接 发现 有汉字 哈哈 这样的话 必须对汉字进行一下...

Android资源文件strings实现特殊字符转义

规范的开发中,很多参数都是写在res下的values文件中,这次讲讲常遇到的strings文件中特殊字符的处理 @ 对应 -----@----- : 对应 -----:----...
  • hj2drf
  • hj2drf
  • 2016年12月27日 11:21
  • 1273
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android学习记录(十八)-url转义继续填坑之旅
举报原因:
原因补充:

(最多只允许输入30个字)