关于utf-8,utf-7,unicode几种编码的区别

今天上csdn论坛时看到一个关于utf-8,utf-7......几种编码的区别,说法不一,虽然经常使用这几种编码,咋一想,还真有点模糊,于是百度一下,找了一些相关文章,总结如下(仅代表个人观点):

unicode :

每个字符2个字节

utf-8:

英文字符即能用8位表示的字符用1个字节表示

 能用8 到 11位 表示的字符用2个字节表示

 能用12 到 16 位表示的字符用2个字节表示

utf-7:

遇英语字母、数字和常见符号直接用8位表示(不过我也没搞清楚什么时常见符号,如"&"符就会当成非常见字符。。。)

其他的符号串用+-来标记始终,如"a中中a"

在遇到中时会如下编码

a的编码    +的编码  中的编码 中的编码 -的编码 a的编码

共6个字节。。。

测试代码

 a  =   " a中中a " ;           
            
byte [] bb  =  Encoding.UTF8.GetBytes(a);
            Console.WriteLine(
" 长度: "   +  bb.Length);
            
foreach  ( byte  bbb  in  bb)
            
{
                Console.Write(bbb.ToString()
+"   "); 
            }

             bb 
=  Encoding.UTF7.GetBytes(a);
             Console.WriteLine();
             Console.WriteLine(
" 长度: " + bb.Length);
            
foreach  ( byte  bbb  in  bb)
            
{
                Console.Write(bbb.ToString() 
+ "   ");
            }

            bb 
=  Encoding.ASCII.GetBytes(a);
            Console.WriteLine();
            Console.WriteLine(
" 长度: "   +  bb.Length);
            
foreach  ( byte  bbb  in  bb)
            
{
                Console.Write(bbb.ToString() 
+ "   ");
            }
            
            Console.ReadLine();

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值