zoukankan      html  css  js  c++  java
  • 字符编码

    今天舍友突然问了C#的编码是啥?突然发现我似乎不清楚编码,甚至忘记了。现在我们来学习一下
     
    编码:就是0和1去表示我们使用的字符,因为计算机内是二进制的。把我们的字符编码成计算机语言
     
    ASCII:
    八个二进制位等于一字节(byte),可以组合出256种状态,从00000000到11111111
     
    基本表7位128个。如大写字母A是65(01000001)——英文是够用的
    扩展表8位256个——欧洲国家不够用,但是每个不同国家128-255这段是不同的
     
    GB2312:(最常见的简体中文编码)
    因为汉字符号很多,一个字节不够,所以是两个字节表示一个汉字(2^16=65536)
     
    Unicode:(统一的编码)
    很多种的编码方式,同一个二进制数字可以被解释成不同的符号。因此打开一个文件,就必须知道它的编码方式,否则就会出现乱码了。
    Unicode就是想将世界上所有的符号纳入其中,所有的符号都是同一套编码
    两个问题:
    (1)计算机怎么知道三个字节表示一个符号,而不是表示三个符号
    (2)如果统一规定,每个符号用三个或4个字节表示,那英文字母前面有二到三个字节0,浪费
    所以出现很多种存储方式并且很长一段时间都无法推广,直到互联网出现
     
    UTF-8:(Unicode的实现方式之一)
    互联网的普及,要求出现一种统一的编码方式。UTF-8是互联网上使用最广的Unicode实现方式。
    其他的实现包括UTF-16(两个或四个字节)和UTF-32(用四个字节)
    UTF-8最大特点是变长的编码方式。用1-4个字节表示一个符号
    (1)对于单字节,第一位为0
    (2)对于2字节以上,第一个字节前n位为1,然后n+1位为0,后面字节前两位为10
    0xxxxxxx 110xxxxx 10xxxxxx 1110xxxx 10xxxxxx 10xxxxxx 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
     
    Big5: (繁体字)
     
    有空再更新深入的
  • 相关阅读:
    hdu4726
    hdu2709
    hdu4706
    hdu4715
    快速幂取模
    快速幂
    asp.net中页面传值
    微信小程序支付
    sql 查询重复记录值取一条
    bower使用
  • 原文地址:https://www.cnblogs.com/EvanWay/p/9772768.html
Copyright © 2011-2022 走看看