`
songbin0201
  • 浏览: 323206 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于2进制和16进制、以及字符编码的回顾(先挖坑,后填埋)

 
阅读更多
http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html
http://www.joelonsoftware.com/articles/Unicode.html
http://blog.csdn.net/sfdev/article/details/3770706 (推荐)

2进制  逢2进1
16进制 逢16进1

1、ASCII
美国信息交换标准代码 American Standard Code for Information Interchange
用指定的7位或8位二进制数组合来表示128或256种可能的字符。
例如 a ,97就是其对应的ascii编码
ascii 是 二进制表示的字符编码集合

2、unicode
Universal Multiple-Octet Coded Character Set,简称为UCS
unicode 是用16进制表示的字符编码集合,例如“密” 的 unicode的编码是 5bc6

unicode表示一种字符集合,但是不同字符占用的位数不同,有的可能占用1个字节就够了,例如  'a' ,而有的可能占用2个以上字节,例如 “啊” ;这就带来了存储格式的问题,统一采用最长字节存储,不足的补0,则会带来空间上的浪费,基于这种情况,演变出 UTF-8、UTF-16、UTF-32等等unicode的实现方式(即编码方式)
UTF(UCS Transformation Format)

UTF-16 用两个字节表示一个符号,基本等同于UCS-2。

UTF-8最大的一个特点,就是它是一种变长的编码方式。它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度。
1)对于单字节的符号,字节的第一位设为0,后面7位为这个符号的unicode码。因此对于英语字母,UTF-8编码和ASCII码是相同的。
2)对于n字节的符号(n>1),第一个字节的前n位都设为1,第n+1位设为0,后面字节的前两位一律设为10。剩下的没有提及的二进制位,全部为这个符号的unicode码。

Unicode符号范围            |  UTF-8编码方式
(十六进制)                      | (二进制)
--------------------+---------------------------------------------
0000 0000 - 0000 007F | 0xxxxxxx
0000 0080 - 0000 07FF  | 110xxxxx 10xxxxxx
0000 0800 - 0000 FFFF  | 1110xxxx 10xxxxxx 10xxxxxx
0001 0000 - 0010 FFFF  | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx



http协议的编码设置
请求头Accept-Charset 是告诉服务器,浏览器可以接受的字符集,如果服务器不支持该字符集,应该返回406的error
响应头Content-Type 中的 charset则将告诉浏览器
分享到:
评论

相关推荐

    java 字符串转16进制 16进制转字符串 将两个ASCII字符合成一个字节;

    java 字符串转16进制 16进制转字符串 将两个ASCII字符合成一个字节; java 字符串转16进制 16进制转字符串 将两个ASCII字符合成一个字节; java 字符串转16进制 16进制转字符串 将两个ASCII字符合成一个字节; java ...

    labview16进制数值向2进制字符串转化

    16进制数值向2进制字符串转化的小程序,亲测有效,内部附有解释说明

    C语言二进制字符串与十六进制字符串相互转化

    先用`sscanf`读取二进制字符串,然后用`sprintf`将结果格式化为十六进制。 同样,从十六进制字符串转化为二进制字符串,我们需要对每个十六进制字符进行解析。C语言的`strtol`函数可以用于此目的,它能将字符串转换...

    C# 字符串转十六进制串,16进制反向转回原字符串

    注意,由于Unicode编码中每个字符可能需要两个字节来表示,所以在转换过程中必须确保原始字符串和十六进制串的长度是偶数,否则可能会丢失字符信息。 这些方法可以帮助你在C#中灵活地处理字符串和十六进制串之间的...

    android字符串和16进制转换

    在Android开发中,理解和操作字符串以及16进制数值是至关重要的技能,尤其是在处理数据传输、存储或解析二进制数据时。这篇文章将深入探讨如何在Android平台上进行字符串与16进制之间的转换。 首先,我们要明白...

    曼彻斯特编码解码器V1.3(16进制2进制转换).rar

    总之,这款曼彻斯特编码解码器V1.3是一个强大的工具,它涵盖了多种曼彻斯特编码的解码和转换功能,同时提供16进制与二进制之间的转换,对于学习和分析数字通信系统以及处理网络数据的工程师来说,无疑是一个实用的...

    labview 10进制字符串强制转换为16进制字符串

    本VI实现十进制字符串强制转换为16进制字符串,即输入10进制的0CDA可输出16进制的0CDA

    labview 16进制字符串强制转换为10进制字符串

    本VI实现16进制字符串强制转换为10进制字符串,即输入16进制的03DF本VI可以输出10进制的03DF,如果需要区分大小写,请自行添加强制转换为大写或小写

    Qt中的字符编码转换:UTF8、Unicode、GBK、ASCII、16进制字符、16进制数值

    对于GBK编码,可能需要先将16进制字符串转换为Unicode,然后再转换为GBK。 在开发环境中,如Qt Creator 4.10.1和Qt 5.13.2,编码问题需要注意,因为Windows系统默认使用GBK编码,而Qt默认使用Unicode。这意味着在...

    Lua小程序十六进制字符串和二进制数据间的转换[借鉴].pdf

    Lua 小程序十六进制字符串和二进制数据间的转换 本篇文章将介绍 Lua 小程序在十六进制字符串和二进制数据之间的转换。Lua 是一种轻量级、高效、灵活的脚本语言,广泛应用于游戏、软件开发等领域。在数据处理过程中...

    Delphi源码 - 汉字转16进制编码

    5. **输出16进制编码**:将每个汉字的16进制编码拼接成一个字符串,并展示给用户,可能是通过Label控件显示,或者写入到文件中。 压缩包中的`mrpString`文件可能包含了这个工具的源代码或者是编译后的可执行文件。...

    Delphi字符串16进制互相转换

    - 对于非标准的16进制字符串,可能需要先将其转换为标准格式,例如,删除前缀`'0x'`,然后使用`TryParseHex`函数。 2. **整数转16进制字符串**: - `IntToHex`函数可以将整数转换为16进制字符串,如`IntToHex...

    字符串转16进制ASCII、16进制ASCII转字符串

    字符串转16进制ASCII、16进制ASCII转字符串

    16进制字符串显示图片工具

    16进制字符串是由0到9的数字和A到F的字母组成的,每个字符代表4位二进制,因此每两个16进制字符可以表示一个字节。在图像处理中,图片通常以二进制数据的形式存储,这些二进制数据可以通过16进制字符串来展示和解析...

    16进制查看器(16进制、ASCII编码)

    标题中的“16进制查看器(16进制、ASCII编码)”指的是一个软件工具,主要用于查看和分析数据文件的16进制表示以及ASCII编码。这种工具在IT行业中非常常见,尤其对于程序员、系统管理员和数据分析师来说是必不可少的...

    vc 16进制字符串转换为10进制的整数

    1. **预处理字符串**:先检查输入的字符串是否符合16进制格式,即只包含0-9和A-F的字符。可以使用`std::all_of()`函数配合自定义的谓词函数进行验证。 2. **计算值**:从字符串的最后一个字符开始,逐个字符取出,...

    16进制数据与字符串之间的转换

    该类的功能主要是实现16进制转字符串和字符串转16进制字符窜和byte数据方法

    10进制转16进制hex,10进制转16进制和2进制,LabView源码.zip

    在"10进制转16进制hex,10进制转16进制和2进制,LabView源码.zip"这个压缩包中,包含的资源显然与这些转换以及可能的LabVIEW编程实践有关。 10进制到16进制(Hex)的转换: 16进制是一种基于16的计数系统,它使用16个...

    16进制字符串显示图片

    在计算机科学中,16进制(Hexadecimal)是一种常用于表示二进制数据的便捷方式,因为它比纯二进制更容易阅读和理解。在标题“16进制字符串显示图片”中,所指的是一种将16进制字符串转换为图像的方法。这种技术通常...

    字符串十六进制转换工具(包含ANSI和UNICODE)

    在IT领域,字符串和十六进制转换是常见的操作,尤其在数据处理、编程以及网络通信中。本工具专注于ANSI和UNICODE字符串与十六进制之间的转换,这涉及到字符编码和二进制数据的理解。 首先,我们要理解ANSI和UNICODE...

Global site tag (gtag.js) - Google Analytics