BOM: Byte Oder Mark
 

编码

BOM

UTF-8

EF BB BF

UTF-16  big endian

FE FF

UTF-16  little endian (Unicode)

FF FE

UTF-32  big endian

00 00 FE FF

UTF-32  little endian

FF FE 00 00

 
你可能不知道:一个汉字用utf-8编码会用3个字节。
 
NET中的StreamWriter默认采用UTF8编码格式编码字符串,但并不将UTF8所对应的BOM值(“EF BB BF”)写入到二进制流中。UTF8Encoding 的默认构造函数也不带BOM,而Encoding.UTF8是带BOM的。
 
DBCS double-byte character set
SBCS single-byte character set
 
在中文环境下Encoding.Default属性返回的类型是DBCSCodePageEncoding,这是一个internal的类

代码页标识值

.NET中的名字

936

gb2312

950

big5

1200

utf-16

52936

hz-gb-2312

54936

GB18030

65000

utf-7

65001

utf-8

932

Japanese Shift-JIS

 
private static Encoding CreateDefaultEncoding()
{
    int aCP = Win32Native.GetACP();
    if (aCP == 0x4e4) //1252
    {
        return new SBCSCodePageEncoding(aCP);
    }
    return GetEncoding(aCP);
}
 

相关文章:

  • 2021-10-24
  • 2021-10-15
  • 2021-10-04
  • 2021-06-23
  • 2021-09-20
  • 2021-10-23
  • 2021-11-28
猜你喜欢
  • 2021-06-03
  • 2021-05-01
  • 2021-04-26
  • 2021-11-26
  • 2022-12-23
  • 2021-08-09
  • 2021-07-09
相关资源
相似解决方案