zoukankan      html  css  js  c++  java
  • 理解文件的编码

     

    • UTF-16BE:汉字占 2 个字节, 字母占 2 个字节。
    • UTF-8:汉字占 3 个字节, 字母占 1 个字节。
    • GBK:汉字占 2 个字节,字母占 1 一个字节。Java项目默认编码为GBK。
    • ANSI:中文系统下ansi编码代表GBK编码。

      Java是双字节编码,一个字符占2个字节。所以Java里的一个字符可以放一个汉字,默认的Java项目编码为GBK,一个汉字2个字节,正好可以放进去,不会出现乱码。

      当你的 字节序列 为某种编码时,这个时候如果想把字节序列编变成字符串,也要用到这种编码方式,否则会出现乱码。

      在程序中,将 字节序列 变成 字符串,如果不给出字节序列的编码方式,则会采用系统默认的编码方式GBK,例如,bytes是一个UTF-8的字节序列数组,如果要将其转换成这个字节序列所表示的字符串,则必须给出这种编码方式:

        String str = new String(bytes,”utf-8”);

      如果不给出则会按照GBK编码方式转换成字符串,就会出现乱码。

      文本文件其实是一种字节序列。

      在文本文件可以查看任意编码的文字信息而不乱码。

      在中文机器上直接创建文本文件,那么文本文件默认以ansi编码(也就是GBK)来保存文字信息。

      在Eclipse里面,项目设置的什么编码形式,它就只认识什么编码。如果从一个utf-8的项目里拷贝一个文本文件到GBK的项目里,再打开则会出现乱码。但是如果从utf-8的文本文件里直接拷贝文字内容到GBK项目的文本文件里,不会出现乱码,系统会自动地做编码转换。

  • 相关阅读:
    NABCD项目分析
    第七周学习进度
    第六周学习进度
    构建之法阅读笔记03
    [算法] 求x的n次方的一种for循环实现
    [算法]分解质因数
    通过索引操作数组
    [swift入门] 数据类型
    二叉排序树 常用函数小结
    剑指 Offer 54. 二叉搜索树的第k大节点 做题小结
  • 原文地址:https://www.cnblogs.com/xingyazhao/p/6007369.html
Copyright © 2011-2022 走看看