感谢原文作者:Teingi

原文链接:https://blog.csdn.net/weixin_40449300/article/details/86567129

在我们通常使用的windows系统中,我发现了一个有趣的现象。我新建一个空的文本文档,点击文件-另存为-编码选择UTF-8,然后保存。此时这个文件明明是空的,却占了3字节大小。原因在于:此时保存的编码方式自动会变为UTF-8 BOM

一、一个汉字在不同的编码方式中占多少字节?

1.在UTF-8中,一个汉字占3个字节(一个字符占一个字节)

2.在ASCII码中,一个汉字占2个字节(一个字符占一个字节)

3.在Unicode编码中,一个汉字占2个字节(一个字符同样占两个字节,所以JAVA中char a = ‘中’;是可以的)

二、UTF-8与UTF-8 BOM

BOM即byte order mark,具体含义可百度百科或维基百科,UTF-8文件中放置BOM主要是微软的习惯,但是放在别的系统上会出现问题。不含BOM的UTF-8才是标准形式,UTF-8不需要BOM带BOM的UTF-8文件的开头会有U+FEFF,所以我新建的空文件会有3字节的大小。

三、创建UTF-8(而非UTF-8 BOM)文件的方法

在发现文件另存为UTF-8缺得到UTF-8 BOM文件后,我们怎样才能得到UTF-8呢?

方法:.先另存为UTF-8保存,再使用notepad++打开,把里面的编码设置为无BOM的UTF-8然后保存。(此方法治标不治本,因为当你再次在里面写汉字时,文件会自动变成UTF-8 BOM)

最新文章

  1. bfrd collector性能排查
  2. highchart 添加新的series
  3. ajax函数封装
  4. Tomcat内部结构及工作原理学习
  5. maketrans translate
  6. css之 斜线
  7. php--tp中页面之间的跳转
  8. Hibernate之基于外键映射的一对一(1-1)关联关系
  9. YII CJson类
  10. Oracle Sequence与Trigger的使用
  11. if语句之猜拳
  12. [Git]自译《Git版本控制管理》——1.介绍(二)_Git诞生
  13. JAVA程序测试之Swing编程
  14. Spring之旅第六篇-事务管理
  15. Puppeteer: 更友好的 Headless Chrome Node API
  16. Servlet(1)—Servlet容器tomcat和HTTP协议
  17. Django Admin实现三级联动(省市区)
  18. spring中@Scope控制作用域
  19. R语言学习 第一篇:变量和向量
  20. Vertica使用Database Designer创建完整的设计

热门文章

  1. Java面向对象笔记 • 【第1章 面向对象】
  2. SpringBoot+神通数据库+JPA
  3. centos一步一步搭建tendermint
  4. linux 之 误删openssl文件夹重装openssl
  5. nginx 配置 ^~ 的用法妙处,403阻断
  6. mysql 的 if 和 SQL server 的 iif
  7. [转]axios请求超时,设置重新请求的完美解决方法
  8. iframe页面二次登录问题
  9. java计算器(简单版)
  10. 《剑指offer》面试题18. 删除链表的节点