zoukankan      html  css  js  c++  java
  • UTF-8中的BOM

    UTF-8中的BOM

    UTF-8不需要BOM来表明字节顺序,但可以用BOM来表明编码方式。字符"ZERO WIDTH NO-BREAK SPACE"的UTF-8编码是EF BB BF。所以如果接收者收到以EF BB BF开头的字节流,就知道这是UTF-8编码了。

    UTF-8编码的文件中,BOM占三个字节。如果用记事本把一个文本文件另存为UTF-8编码方式的话,用UE打开这个文件,切换到十六进制编辑状态就可以看到开头的FFFE了。这是个标识UTF-8编码文件的好办法,软件通过BOM来识别这个文件是否是UTF-8编码。

    对于含BOM头的UTF8文件,前三个字节是xEFxBFxBD,某些软件对于不包含BOM头格式的文件识别存在问题,而有些软件对于有BOM头的文件解析有问题。所以这个问题要区别对待,我们可以在Notepad++里进行转换。

    C#写文件时指定是否有BOM

    var utf8WithBom = new System.Text.UTF8Encoding(true);  // 用true来指定包含bom  or false指定不含bom
    StreamWriter swr = null;
    try
    {
        swr = new StreamWriter("ok.txt", false, utf8WithBom);
        swr.Write("yzh!");
    }
    catch(Exception e)
    {
    }
    finally
    {
        if (swr != null)
        {
            swr.Close();
            swr.Dispose();
        }
    }
    

     主要用途:

    Maven编译java代码时,需要转换为不含Bom格式的uft-8。

  • 相关阅读:
    小数据池与编码新知
    你确定自己用过字典?
    Django基础三之视图函数
    Django基础二之URL路由系统
    Django基础一之web框架的本质
    CSS
    前端HTML
    MySQL创建用户和授权
    MySQL之索引原理
    Mysql之视图,触发器,事物,存储过程,函数
  • 原文地址:https://www.cnblogs.com/nidongde/p/5317404.html
Copyright © 2011-2022 走看看