自学内容网 自学内容网

C++笔记-UTF8和UTF8-dom的区别

在文件格式上,UTF-8 和 UTF-8-BOM 是两种不同的编码方式,其中 UTF-8-BOM 包含字节顺序标记(BOM),而 UTF-8 则不包含。

  1. UTF-8:
  • UTF-8 是一种以字节为单位的可变长度字符编码,常用于以字节为单位存储 Unicode 字符。
  • UTF-8 文件在没有 BOM 的情况下,直接以文本内容开始,没有额外的字节序标记。

     2. UTF-8-BOM:

  • UTF-8-BOM 也是 UTF-8 编码的一种形式,但含有字节顺序标记(BOM)。
  • BOM 是一个特殊的字符,用于标识文本的字节顺序和编码类型。在 UTF-8-BOM 中,BOM 的字节序列是 EF BB BF。
  • BOM 在文件开头起到标识作用,告诉文本编辑器或程序这是一个以 UTF-8 编码存储的文件。

总的来说,UTF-8-BOM 与 UTF-8 在文件格式上的区别主要是在编码的开头是否包含 BOM。UTF-8-BOM 包含 BOM,而 UTF-8 不包含。

今天遇到的就是这个问题,我用notepad将ascii转utf8后,发现以前的c++解析程序core dumped了,定位到了读首行时,cout输出正常,但string[0],这种首行下标访问就不正常了,转ascii为<0的值。

最后发现notepad转的utf8编码有时会转换成uft-8-dom,所以大家转的时候,还是用notepad++把,方便一些。可以指定是utf8。


原文地址:https://blog.csdn.net/qq78442761/article/details/142916640

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!