문자 인코딩 개요

2427 단어 문자 인코딩
인코딩 정보:
1 인코딩이 있는 이유는 무엇입니까?
모니터에서 볼 수 있는 문자, 사진 등 정보는 컴퓨터 안에서 사실 우리가 볼 수 있는 모습이 아니다. 모든 정보가 하드디스크에 저장되어 있다는 것을 알면서도 그것을 뜯어도 안에 무엇이 있는지 볼 수 없고 디스크만 있다.가령 현미경으로 디스크를 확대하면 디스크 표면이 울퉁불퉁하고 튀어나온 곳은 자화되고 움푹 들어간 곳은 자화되지 않은 것을 볼 수 있다.튀어나온 곳은 숫자 1이고, 움푹 들어간 곳은 숫자 0이다.하드디스크는 모든 문자, 그림 등의 정보를 0과 1로만 표시할 수 있다.
 
컴퓨터의 본질은 계수와 실현수의 수학 논리 연산이기 때문이다.인간 언어 기호를 출력하고 저장할 수 있도록 하려면 언어 문자 기호를 인코딩하여 저장하고 표시해야 한다.이렇게 해서 컴퓨터 속의 이런 수는 두 가지 의미를 가지게 되었다. 그것이 바로 수치와 기호 코드이다.
2 다양한 인코딩 관계
최초의 기호 코드는 asc 코드로 0-127의 수(byte)로 서로 다른 문자를 표시했다.이런 서양 인코딩은 중국과 다른 국가의 언어 문자를 고려하지 않았기 때문에 각국은 수요 때문에 잇달아 asc를 바탕으로 이를 확장하고 자신의 인코딩 방식을 개발했다.gbk는 중국어와 적용되는 인코딩 방식이라고 볼 수 있다.그러나 각 기준의 불일치로 인해 난장판이 자주 발생한다.
이후에 국제적으로 발표된 유니버설 인코딩 방식은 모든 문자를 두 개의byte로 표시하고 다른 모든 문자는 그 안에 모두 수록하여 통일을 실현했다.
 
예를 들어 알파벳 a의 다른 표준 인코딩은 다음과 같다.
asc: 0x61
Gbk:       0x61
Unicode: ox 00 61
utf-8:0x61
나:
asc: 없음
gbk: 0x ce d2
Unicode : 0x62 11.
utf-8:0xe6 88 91
 
3.Utf-8.유니코드 및 utf - 16
유니버설 인코딩 방식과 asc코드가 호환되지 않기 때문에 일부 오래된 소프트웨어를 사용할 수 있도록 utf-8의 방식으로 유니버설 인코딩을 수정하고 asc코드와 호환한다. 구체적인 방법은 긴 인코딩을 사용한다.일반적으로 유니버설은 utf-16be입니다.
 
Java에서는 유니버설 인코딩 (utf-16be) 을 사용하고 String을 통과할 수 있습니다.getBytes ("XXX") 함수는 이 String의 XXX 인코딩의byte 그룹을 가져옵니다.서로 다른 인코딩 방식의 수치를 비교할 수 있다. 
참조 코드:
 
 
 
import java.io.UnsupportedEncodingException;
 
public class CharSet {
    String s = "a";
   
    public static void main(String[] args) throws UnsupportedEncodingException{
         CharSet test = new CharSet();
         test.bytesprint();
         test.getByte();
    }
   
    public void bytesprint(){
       for(int i=0 ;i <s.length();i++){
           char c = s.charAt(i);
           int high = c>>>8 & 0xff;
           int low = c & 0xff;
           System.out.print(Integer.toHexString(high)+" "+ Integer.toHexString(low)+" ");
       }
       System.out.println();
    }
public void getByte() throws UnsupportedEncodingException{
    byte[] bytes = s.getBytes("utf-8");
    for(int i=0;i<bytes.length; i++){
       int c = bytes[i] & 0xff;
           System.out.print(Integer.toHexString(c)+" ");
    }
}
}
 
 

좋은 웹페이지 즐겨찾기