展开

关键词

空格URL编码的正确使用姿势

本文将简要介绍这两种编码方式,以及会给我们的开发工作带来什么样的问题,最后给出一些编码建议。 编码建议     其实避免上面错误的方法很简单,就是在开发中我们要统一客户端和服务端的编码方式,而不能两者混用。建议客户端和服务端同时使用RFC-3986编码方式,将请求参数全部编码成%HH格式。 当然为了保证正确的编码解码,统一的字符集也不可缺少,最好都使用UTF-8。 3. Java中的URL编码     Java中常用的URL编码类有两个:一个是JDK自带的java.net.URLEncoder,另一个是Apache的org.apache.commons.codec.net.URLCodec QueryStringEncoder类可以可以实现RFC-3986的URL编码,代码如下: QueryStringEncoder encoder = new QueryStringEncoder("/"

1.6K70

Javascript中的url编码与解码(详解)

US-ASCII字符集中没有对应的可打印字符 Url中只允许使用可打印字符。US-ASCII码中的10-7F字节全都表示控制字符,这些字符都不能直接出现在Url中。 Url编码默认使用字符集US-ASCII。例如a在US-ASCII码中对应的字节是0x61,那么Url编码之后得到的就是%61,我们在地址栏上输入http://g.cn/search? 还有,对于非ASCII字符,使用编码字符集取决于当前文档使用字符集。 当提交表单时,Url编码使用字符集就是gb2312。 文档字符集会影响encodeURI吗? 例如对于IE,如果你勾选了高级设置“总是以UTF-8发送Url”,那么Url中的路径部分的中文会使用UTF-8进行Url编码之后发送给服务端,而查询参数中的中文部分使用系统默认字符集进行Url编码

82390
  • 广告
    关闭

    腾讯云服务器买赠活动

    腾讯云服务器买赠活动,低至72元1年,买就送,最长续3个月,买2核送4核、买4核送8核

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Web开发须知:URL编码与解码

    US-ASCII字符集中没有对应的可打印字符:Url中只允许使用可打印字符。US-ASCII码中的10-7F字节全都表示控制字符,这些 字符都不能直接出现在Url中。 Url编码默认使用字符集US-ASCII。例如a在US-ASCII码中对应的字节是0x61,那么Url编码之后得到的就 是%61,我们在地址栏上输入http://g.cn/search? 还有,对于非ASCII字符,使用编码字符集取决于当前文档使 用的字符集。 当提交表单时,Url编码使用字符集就是gb2312。    例如对于IE,如果你勾选了高级设置"总是以UTF-8发送Url",那么Url中的路径部分的中文会使用UTF-8进行Url编码之后发送给服务端,而查询参数中的中文部分使用系统默认字符集进行Url编码

    1.3K30

    为什么要进行URL编码!!!

    US-ASCII字符集中没有对应的可打印字符:Url中只允许使用可打印字符。US-ASCII码中的10-7F字节全都表示控制字符,这些字符都不能直接出现在Url中。 Url编码默认使用字符集US-ASCII。例如a在US-ASCII码中对应的字节是0x61,那么Url编码之后得到的就是%61,我们在地址栏上输入http://g.cn/search? 还有,对于非ASCII字符,使用编码字符集取决于当前文档使用字符集。 当提交表单时,Url编码使用字符集就是gb2312。 例如对于IE,如果你勾选了高级设置"总是以UTF-8发送Url",那么Url中的路径部分的中文会使用UTF-8进行Url编码之后发送给服务端,而查询参数中的中文部分使用系统默认字符集进行Url编码

    3K30

    为什么要进行 URL 编码???

    US-ASCII字符集中没有对应的可打印字符:Url中只允许使用可打印字符。US-ASCII码中的10-7F字节全都表示控制字符,这些字符都不能直接出现在Url中。 Url编码默认使用字符集US-ASCII。例如a在US-ASCII码中对应的字节是0x61,那么Url编码之后得到的就是%61,我们在地址栏上输入http://g.cn/search? 还有,对于非ASCII字符,使用编码字符集取决于当前文档使用字符集。 当提交表单时,Url编码使用字符集就是gb2312。 例如对于IE,如果你勾选了高级设置"总是以UTF-8发送Url",那么Url中的路径部分的中文会使用UTF-8进行Url编码之后发送给服务端,而查询参数中的中文部分使用系统默认字符集进行Url编码

    47020

    RFC1945 超文本传输协议--HTTP1.0 之一

    US-ASCII 编码字符集定义[17]。 这种定义倾向于允许不同类型的字符编码通过简单的单表映射来实现, 如,从表US-ASCII切换到复杂表如ISO2202。 注意:术语字符集(character set)归于字符编码(character encoding)。事实上, 由于HTTP与MIME共同使用同样的注册,所以其术语也应一致。 这些在RFC 1521 [5] 中注册的字符集,即 US-ASCII [17] 及ISO-8859 [18]字符集,还有一些其它字符集被强烈建议在MIME 字符集参数内部使用。 实体主体的字符集如果属于US-ASCII 或ISO-8859-1字符集,则勿需标记,否则, 应当用主体字符编码方式中的最基本命名来标记。

    42620

    Java-Java IO流解读之基于字符的I O和字符流

    这是因为一些字符集使用固定长度的8位(例如,US-ASCII,ISO-8859-1)或16位(例如,UCS-16),而某些使用可变长度为1-4字节 例如,UTF-8,UTF-16,UTF-16-BE,UTF 当无法控制文件编码字符集,不建议使用FileReader / FileWriter。 要更改JVM的文件编码默认字符集,可以使用命令行VM选项“-Dfile.encoding”。 例如,以下命令运行具有UTF-8的默认字符集的程序。 前面介绍的FileReader / FileWriter使用默认字符集进行解码/编码,导致非便携式程序。 示例: 以下程序使用各种字符集将Unicode文本写入磁盘文件进行文件编码。 然后,它逐个字节(通过基于字节的输入流)读取文件,以检查各种字符集中的编码字符。

    14130

    Spring MVC中的@RequestParam注解的使用指南

    简而言之,我们可以使用@RequestParam从请求中提取查询参数,表单参数甚至文件。我们将讨论如何使用@RequestParam及其属性。 URI编码 RFC3986文档规定,Url中只允许包含英文字母(a-zA-Z)、数字(0-9)、-_.~4个特殊字符以及所有保留字符。 US-ASCII字符集中没有对应的可打印字符:Url中只允许使用可打印字符。US-ASCII码中的10-7F字节全都表示控制字符,这些字符都不能直接出现在Url中。 同时,对于80-FF字节(ISO-8859-1),由于已经超出了US-ACII定义的字节范围,因此也不可以放在Url中。 保留字符:Url可以划分成若干个组件,协议、主机、路径等。有一些字符(:/? 根据上面两种结果,@PathVariable 从路径中获取是不用编码解码的,而@RequestParam会进行编码解码。

    6.8K20

    Jmail的主要参数列表

    (2)Charset(字符集,缺省为"US-ASCII") : 字符串 如:JMail.Charset = "US-ASCII" (3)ContentTransferEncoding : 字符串 指定内容传送时的编码方式 如:JMail.ContentType = "text/html" (5)Encoding : 字符串 设置附件编码方式(缺省是"base64)。 属性设置为true,见下面) : 字符串 如:使用Response.Write( JMail.Log )语句列出日志信息。 AddRecipientCC( Email ) ,抄送收件人: 如:JMail.AddRecipientCC( "anone@mailhost.com" ) (20)AddURLAttachment( URL , 文档名) 下载并添加一个来自url的附件.

    16120

    JS魔法堂:Data URI Scheme介绍

    [;charset=<charset>] :可选项,源文本的字符集编码方式   ④.  [;<encoding>] :数据编码方式(默认US-ASCII,BASE64两种)   ⑤.   [;<encoding>] 的默认值为US-ASCII,就是每个字符会编码为%xx的形式;  [c].   myidBackground); }   上面注释的部分就是定义一个名为myidBackground的Base64编码图片,然后在class为myid的css中使用。    它使用了 SSL (安全套接字层)或 PCT(保密通讯技术)这样的安全协议来确保您所收发信息的安全性。 当站点使用安全协议时,您提供的信息例如姓名或信用卡号码等都经过加密,其他人无法读取。                          Base64字符集: ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/

    51570

    URI、URL、URN、IRI,你分得清吗?

    No corresponding graphic US-ASCII: URLs are written only with the graphic printable characters of the US-ASCII coded character set. (注释:组成 URI 的字符是从 US-ASCII 字符集里面挑的,范围非常小) The characters in URIs are frequently used for representing (概要:URI 里面通常都是自然语言的表达,但是如果用的不是英语,那只能经过编码进行表达,增加了复杂度和迷惑性) The infrastructure for the appropriate handling (概要:非保留字扩充了 USC 字符集 U+007F 后面的字符,其他规则跟 URI 的套路差不多) 3.

    25220

    JDK1.9-转换流

    基本的ASCII字符集使用7位(bits)表示一个字符,共128字符。ASCII的扩展字符集使用8位(bits)表示一个字符,共256字符,方便支持欧洲常用字符。 ISO-8859-1字符集: 拉丁码表,别名Latin-1,用于显示欧洲使用的语言,包括荷兰、丹麦、德语、意大利语、西班牙语等。 ISO-8859-1使用单字节编码,兼容ASCII编码。 所以,我们开发Web应用,也要使用UTF-8编码。它使用一至四个字节为每个字符编码编码规则: 128个US-ASCII字符,只需一个字节编码。 拉丁文等字符,需要二个字节编码。 它读取字节,并使用指定的字符集将其解码为字符。它的字符集可以由名称指定,也可以接受平台的默认字符集使用指定的字符集将字符编码为字节。它的字符集可以由名称指定,也可以接受平台的默认字符集

    21810

    hiveql函数笔记(二)

    1、数据查询 //提高聚合的性能 SET hive.map.aggr=true; SELECT count(*),avg(salary) FROM employees; //木匾不允许在一个查询语句中使用多于一个的函数 parse_url_tuple(url,partname1,partname2,..,partNameN)  其中N>=1,从URL中解析出N个部分信息。 其输入参数是:URL,以及多个要抽取的部分的名称。 和concat类似,不过是使用指定的分隔符进行拼接. decode(BINARY bin,STRING charset)  使用指定的字符集charset将二进制值bin解码成字符串(支持的字符集有:' 如果任一输入参数为NULL,则结果返回NULL encode(STRING src,STRING charset)  使用指定的字符集charset将字符串src编码成二进制值(支持的字符集有:'US-ASCII

    32410

    iOS APP添加桌面快捷方式

    其中pre.html是实体页面,被编译为data url; index.html是入口文件,打开后二次跳转至pre.html对应的data url。 点击添加到主屏幕,跳转页面可以看到data url格式的内容。添加到主屏幕,就是将编码好的网页内容和图标保存到桌面。 同样的效果使用 data URIscheme 可以写为 <imgsrc="data:image/png;base64,iVBO…" /> 在data URI scheme实现方式中,把图像文件进行base64 charset>][;<encoding>],<encodeddata> data :协议名称; [] :可选项,数据类型(image/png、text/plain等) [;charset=] :可选项,源文本的字符集编码方式 [;] :数据编码方式(默认US-ASCII,BASE64两种) , :编码后的数据 目前,Data URIscheme支持的类型有: data:,

    3.1K50

    深度解密HTTP通信细节

    总之,基于很多原因,URL设计者将US-ASCII码和其转义序列集成到URL中,通过转义序列,就可以用US-ASCII字符集的有限子集对任意字符或数据进行编码了。 所以上面在浏览器发送给服务器的URL进行了非“安全字符”编码,也就不奇怪了吧? ? 在URL中,当上面的保留字符用在保留用途之外的场合时,需要对URL进行编码URL定义了资源的位置,表示资源的实际地址,在使用URL的过程中,如果URL背后的资源发生了位置移动,访问者就找不到它了。 比较常见的字符集US-ASCII: 这个字符集是所有字符集的始祖,早在1968年就发布了标准。ASCII码的代码值从0到127, 只需要7个bit位就可以覆盖代码空间。 HTTP报文的首部、URL使用字符集就是ASCII码。可以再看下上文报文分析部分的acsii码集。 US-ASCII是把每个字符编码成固定的7位二进制值。 UTF-8则是无固定的编码方案。

    30420

    深度解密HTTP通信细节

    总之,基于很多原因,URL设计者将US-ASCII码和其转义序列集成到URL中,通过转义序列,就可以用US-ASCII字符集的有限子集对任意字符或数据进行编码了。 所以上面在浏览器发送给服务器的URL进行了非“安全字符”编码,也就不奇怪了吧? ? 在URL中,当上面的保留字符用在保留用途之外的场合时,需要对URL进行编码URL定义了资源的位置,表示资源的实际地址,在使用URL的过程中,如果URL背后的资源发生了位置移动,访问者就找不到它了。 比较常见的字符集US-ASCII: 这个字符集是所有字符集的始祖,早在1968年就发布了标准。ASCII码的代码值从0到127, 只需要7个bit位就可以覆盖代码空间。 HTTP报文的首部、URL使用字符集就是ASCII码。可以再看下上文报文分析部分的acsii码集。 US-ASCII是把每个字符编码成固定的7位二进制值。 UTF-8则是无固定的编码方案。

    27120

    深度解密HTTP通信细节

    总之,基于很多原因,URL设计者将US-ASCII码和其转义序列集成到URL中,通过转义序列,就可以用US-ASCII字符集的有限子集对任意字符或数据进行编码了。 所以上面在浏览器发送给服务器的URL进行了非“安全字符”编码,也就不奇怪了吧? ? 在URL中,当上面的保留字符用在保留用途之外的场合时,需要对URL进行编码URL定义了资源的位置,表示资源的实际地址,在使用URL的过程中,如果URL背后的资源发生了位置移动,访问者就找不到它了。 比较常见的字符集US-ASCII: 这个字符集是所有字符集的始祖,早在1968年就发布了标准。ASCII码的代码值从0到127, 只需要7个bit位就可以覆盖代码空间。 HTTP报文的首部、URL使用字符集就是ASCII码。可以再看下上文报文分析部分的acsii码集。 US-ASCII是把每个字符编码成固定的7位二进制值。 UTF-8则是无固定的编码方案。

    21800

    深度解密HTTP通信细节

    总之,基于很多原因,URL设计者将US-ASCII码和其转义序列集成到URL中,通过转义序列,就可以用US-ASCII字符集的有限子集对任意字符或数据进行编码了。 所以上面在浏览器发送给服务器的URL进行了非“安全字符”编码,也就不奇怪了吧? ? 在URL中,当上面的保留字符用在保留用途之外的场合时,需要对URL进行编码URL定义了资源的位置,表示资源的实际地址,在使用URL的过程中,如果URL背后的资源发生了位置移动,访问者就找不到它了。 比较常见的字符集US-ASCII: 这个字符集是所有字符集的始祖,早在1968年就发布了标准。ASCII码的代码值从0到127, 只需要7个bit位就可以覆盖代码空间。 HTTP报文的首部、URL使用字符集就是ASCII码。可以再看下上文报文分析部分的acsii码集。 US-ASCII是把每个字符编码成固定的7位二进制值。 UTF-8则是无固定的编码方案。

    31141

    扫码关注腾讯云开发者

    领取腾讯云代金券