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项目的文本文件里,不会出现乱码,系统会自动地做编码转换。

  • 相关阅读:
    动态规划算法
    MapReduce学习笔记(4)
    MapReduce学习笔记(3)
    MapReduce学习笔记(2)
    Intellij IDEA output 中文乱码
    Spring实例化bean的三种方式
    Spring框架捕获所有URL的请求的处理方案
    异常解决:Mapped Statements collection does not contain value for …
    Java包 package 的命名规范, 命名规则
    拦截器 Filter : js、css、jpg、png等静态资源不被拦截解决方案
  • 原文地址:https://www.cnblogs.com/xingyazhao/p/6007369.html
Copyright © 2011-2022 走看看