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

    在我们通常使用的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呢?

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

    法2.用JAVA代码

    如图,可以很轻松的创建UTF-8文件,且可以随便写汉字,文件字节数=汉字数*3


    ---------------------
    作者:LegendaryHsl
    来源:CSDN
    原文:https://blog.csdn.net/legendaryhsl/article/details/78794121
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    Centos7安装docker
    Centos 7快速安装之packstack
    mysql基础知识复习
    Linux系统部署samba服务记录
    简单python程序练习
    Docker 搭建pxc集群 + haproxy + keepalived 高可用(二)
    Docker 搭建pxc集群 + haproxy + keepalived 高可用(一)
    linux下的find文件查找命令与grep文件内容查找命令
    db2创建nickname
    oracle 启动报ORA-01105 ORA-19808
  • 原文地址:https://www.cnblogs.com/jfdwd/p/11089803.html
Copyright © 2011-2022 走看看