>  기사  >  Java  >  IO 스트림 파일 인코딩을 구현하는 코드에 대한 자세한 설명

IO 스트림 파일 인코딩을 구현하는 코드에 대한 자세한 설명

Y2J
Y2J원래의
2017-05-15 10:15:451627검색

이번 글은 자바 IO 스트림 파일 인코딩 방법을 예제코드로 소개한 내용인데 매우 훌륭하고 참고할만한 가치가 있습니다. 필요하신 분들은 참고하시면 됩니다.

•파일 인코딩

package cn.test;
import java.io.UnsupportedEncodingException;
public class Demo15 {
  public static void main(String[] args) throws UnsupportedEncodingException {
    String str = "你好ABC123";
    byte[] b1 = str.getBytes();//转换成字节系列用的是项目默认的编码
    for (byte b : b1) {
      //把字节(转换成了int)以十六进制方式显示
      System.out.print(Integer.toHexString(b & 0xff) + " ");
    }
    System.out.println("");
    //utf8编码,中文占用3个字节,英文和数字占用1个字节
    byte[] b2 = str.getBytes("utf8");
    for (byte b : b2) {
      System.out.print(Integer.toHexString(b & 0xff) + " ");
    }
    System.out.println("");
    //gbk编码,中文占用两个字节,英文和数字占用1个字节
    byte[] b3 = str.getBytes("gbk");
    for (byte b : b3) {
      System.out.print(Integer.toHexString(b & 0xff) + " ");
    }
    System.out.println("");
    //java是双字节编码 utf-16be
    //utf-16be编码,中文占2个字节,英文和数字也占用2个字节
    byte[] b4 = str.getBytes("utf-16be");
    for (byte b : b4) {
      System.out.print(Integer.toHexString(b & 0xff) + " ");
    }
    System.out.println("");
    //当字节序列是某种编码时,这时候想把字节序列变成字符串,也需要用这种编码方式,否则会出现乱码
    String str1 = new String(b4);//使用项目默认的编码
    System.out.println(str1);
    String str2 = new String(b4, "utf-16be");
    System.out.println(str2);
  }
}

실행 결과:

e4 bd a0 e5 a5 bd 41 42 43 31 32 33 
e4 bd a0 e5 a5 bd 41 42 43 31 32 33 
c4 e3 ba c3 41 42 43 31 32 33 
4f 60 59 7d 0 41 0 42 0 43 0 31 0 32 0 33 
O`Y}ABC123
你好ABC123

파일은 바이트 시퀀스이며 인코딩된 바이트 시퀀스일 수 있습니다.

중국 컴퓨터에서 직접 텍스트 파일을 생성하면 텍스트 파일은 ansi 인코딩만 인식합니다(중국 시스템에서는 ansi 인코딩이 gbk 인코딩을 나타냄)

[관련 권장 사항 ]

1. 특별 추천: "php Programmer Toolbox" V0.1 버전 다운로드

2. >Java 무료 동영상 튜토리얼

3.

YMP 온라인 매뉴얼

위 내용은 IO 스트림 파일 인코딩을 구현하는 코드에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.