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

  • 相关阅读:
    (整理)SQLServer_DBA 工具
    (转)winform Form 淡入淡出效果
    (转)SQLServer_T-SQL 语句执行时间的查询
    (整理)IIS 7 503 "service unavailable" errors
    (转载)C#中使用GUID
    (转载)SQL Server 2005 如何启用xp_cmdshell组件
    设计模式之适配器
    jaxb 组装及解析xml
    springMvc 简单搭建
    设计模式之工厂模式
  • 原文地址:https://www.cnblogs.com/xingyazhao/p/6007369.html
Copyright © 2011-2022 走看看