HTTP Headers
The headers of a HTTP request or response must be in US-ASCII
format.
It is not possible to use non US-ASCII
characters in the header of a
request or response. Generally this is not an issue however, because the
HTTP headers are designed to facilite the transfer of data rather than to
actually transfer the data itself.
One exception however are cookies. Since cookies are transfered as HTTP Headers
they are confined to the US-ASCII
character set. See the Cookie Guide
for more information.
Request/Response Body
The request or response body can be any encoding, but by default is
ISO-8859-1
. The encoding may be specified in the
Content-Type
header, for example:
Content-Type: text/html; charset=UTF-8
In this case the application should be careful to use UTF-8 encoding
when converting the body to a String or some characters may be corrupt.
You can set the content type header for a request with the
addRequestHeader
method in each method and retrieve the
encoding for the response body with the getResponseCharSet
method.
If the response is known to be a String, you can use the
getResponseBodyAsString
method which will automatically use
the encoding specified in the Content-Type
header or
ISO-8859-1
if no charset is specified.
Note that some document types, such as HTML and XML allow the author
to specify the content type of the file. In this case, you should
consult the appropriate standards regarding how to resovle any conflicts
in the reported charsets.
URLs
The standard for URLs (RFC1738
) explictly
states that URLs may only contain graphic printable characters of the
US-ASCII
coded character set and is defined in terms of octets.
The octets 80-FF
hexadecimal are not used in US-ASCII
and the octets
OO-1F
hexadecimal represent control characters; characters in these
ranges must be encoded.
Characters which cannot be represented by an 8-bit ASCII code, can not
be used in an URL as there is no way to reliably encode them (the
encoding scheme for URLs is based off of octets). Despite this, some
servers do support varying means of encoding double byte characters in
URLs, the most common technique seems to be to use UTF-8 encoding and
encode each octet separately even if a pair of octets represents one
character. This however, is not specified by the standard and is highly
prone to error, so it is recommended that URLs be restricted to the 8-bit
ASCII range.
分享到:
相关推荐
1. 在URL中,非字母数字字符(即除了A-Z,a-z,0-9)和一些特殊字符如"-", "_", ".", "*", "~"之外的字符都需要被编码。这是因为这些字符在URL中有特殊的含义或可能引发解析错误。 2. 编码过程通常使用百分号("%")...
Base64是一种用于将二进制数据编码为ASCII字符串的方法,常用于电子邮件系统和HTTP协议中;Hexadecimal和URL编码则是为了将二进制数据转化为可读的文本形式。 Converter-cn编码工具的离线特性使其在没有网络连接的...
在实际项目中,我们可能需要编写一些测试用例来验证字符编码过滤器的效果,比如包含特殊字符的表单提交,或者不同编码的URL请求等。 6. **最佳实践** - 为确保整个应用的一致性,建议在所有的HTTP响应中都明确指定...
1. ASCII编码:ASCII(美国标准信息交换代码)是最基础的字符编码,只包含128个字符,包括英文大小写字母、数字和一些基本的标点符号。它是单字节编码,每个字符占用一个字节。 2. UTF-8编码:UTF-8(Unicode ...
9. **网络协议中的编码**:HTTP、TCP/IP等网络协议中也有编码概念,比如HTTP头信息的编码,TCP的序列号和确认应答等都是编码技术的应用。 10. **哈希编码**:哈希函数能将任意大小的数据映射到固定长度的值,常用于...
API调用通常采用HTTP GET方式,参数包括地址或坐标,以及一些可选参数,如城市名,用于精确搜索。 例如,使用Python进行高德地理编码操作,可以编写一个名为“高德地理编码.py”的脚本,该脚本可能包含以下内容: ...
GBK编码是中国大陆广泛使用的汉字编码标准,它包含了GB2312字符集以及一些扩展的汉字和符号,能够表示超过20000个汉字。 在编程中,处理包含中文或其他非英文字符的URL时,通常需要进行URL编码。这是因为URL只允许...
在配置G729和G723编码时,可能会遇到一些问题,例如模块无法加载或语音质量不良。解决这些问题需要检查模块版本、服务器配置和网络环境等因素。 Asterisk的G729和G723编码配置需要手动下载和安装模块、修改配置文件...
然而,URL中可能包含一些特殊字符,如空格、逗号、引号等,这些字符在HTTP请求中可能会引起混淆。为了解决这个问题,URL编码应运而生。根据RFC 3986标准,非字母数字字符会被转换成"%xy"的形式,其中"xy"是该字符的...
GB2312编码表包含了6763个常用汉字和一些其他符号,为中文信息处理提供了基础。然而,在网络传输和处理中,由于GB2312不支持Unicode,可能会遇到兼容性问题,因此在现代Web开发中更常使用UTF-8编码。 在"mailto:...
此外,这个工具可能还具备一些高级功能,如批量转换、支持多种编码格式(如UTF-8、GBK等)等,以满足不同场景的需求。不过,具体的功能集需要参照工具的使用说明或界面提示来了解。 总的来说,“URL编码转换工具”...
8. **网络协议编码**:TCP/IP协议栈中的各种协议,如HTTP、FTP、DNS,都有自己的编码规则,用于在网络中高效、可靠地交换信息。 9. **编码与解码算法**:例如视频编码的H.264、音频编码的AAC等,这些算法大大提高了...
4. UTF-7编码:UTF-7是一种适应性编码,主要用于电子邮件和HTTP头,因为它在ASCII字符串中可读。它在非连续的7位ASCII字符中编码Unicode,但如今已被UTF-8广泛取代,因为UTF-8更稳定且在大多数情况下更适用。 5. GB...
- **简介**:是在GB2312基础上扩展的编码标准,支持更多的汉字以及一些非汉字字符。 - **适用场景**:适用于更广泛的中文环境下的文本处理。 ##### 5. UTF-8 - **简介**:是一种可变长度的Unicode编码方案,兼容...
2. 兼容性检查:确认运行环境是否支持GB2312编码,因为一些现代操作系统和软件默认使用Unicode编码,可能无法正确显示GB2312编码的文本。 3. 文本转换:如果需要在不支持GB2312的环境中使用,可能需要将文件内容转换...
6. **安全性考量**:虽然URL编码主要用于数据传输,但也可以被用于一些攻击手段,比如跨站脚本(XSS)或跨站请求伪造(CSRF)。因此,理解URL编码原理对于编写安全的Web应用至关重要。 了解并掌握URL编码解码对于...
本文将深入探讨这个主题,提供一些关键知识点,帮助开发者更好地理解和解决这类问题。 首先,我们需要理解字符编码的基础知识。字符编码是用来表示文本字符的规则,如ASCII、GB2312、GBK、UTF-8等。在网页开发中,...
在HTTP请求中,URL是用于定位网络资源的重要部分,如果其中包含非ASCII字符,必须进行编码才能避免混淆和错误。此外,URL编码也常用于构建查询字符串,确保所有参数都能安全地传递到服务器。 至于压缩包内的“code....
根据题目描述中提到的内容,我们可以看到一些具体的场景应用: **1. 数据库操作中的字符编码问题** 当从数据库中获取数据时,可能会遇到字符编码不一致导致的问题。例如,假设数据库返回的是 `byte[]` 类型的数据...
3. **空格编码**:空格通常被编码为"%20",而不是"+",尽管在HTTP请求中,空格也可以用"+"代替,但在URL字符串中,"+"通常代表空格。 **解码过程** 1. **识别百分号**:在URL中找到所有"%XX"格式的序列,XX代表...