python 에서 문자열 의 인 코딩 과 디 코딩 에 대한 상세 한 분석

1.자주 사용 하 는 인 코딩
  • ASCII:일부 자모,숫자 와 특수 한 문자 만 표시 할 수 있 고 한 바이트 만 차지한다
  • GBK:국가 간 체 중국어 문자 집합 과 번 체 문자 집합,ASCII 호 환,두 바이트유 니 코드:전 세계 의 모든 문 자 를 나 타 낼 수 있 습 니 다.유 니 코드 는 4 개의 바이트 가 차지 하고 2 개의 바이트 가 차지 한 다 는 말 도 있 지만 중국 어 는 2 개의 바이트 입 니 다UTF-8:Unicode 의 압축 판 은 1~3 개의 바이트 를 차지 하 는데 그 중에서 중국 어 는 3 개의 바이트 를 차지한다.
    2.보충:컴퓨터 가 표시 하 는 단위:
    bit:비트,컴퓨터 최소 표시 단위
    bytes:바이트,최소 저장 단위,1bytes=8bit,1bytes 는 1B 로 간략하게 씁 니 다.
    1KB = 1024B
    1MB = 1024KB
    1GB = 1024MB
    1TB = 1024GB
    ......
    3.ASCII 인 코딩
    ASCII 인 코딩 은 라틴 자 모 를 바탕 으로 하 는 인 코딩 으로 주로 현대 영어 와 서유럽 언어 를 나타 내 고 최초 로 통용 되 는 단일 바이트 인 코딩 시스템 이다.구체 적 인 ASCII 대조 표 는 다음 과 같다.

    대조 표 에서 기억 해 야 할 것 은 대문자 A 의 인 코딩 은 65 이 고 소문 자 a 의 인 코딩 은 97 이면 된다.
    python 에서 chr 와 ord 방법 으로 변환 할 수 있 습 니 다:
    
    #         ASCII     
    print(chr(97)) # a
    #            
    print(ord("A")) # 65
    #     
    
    그러나 이벤트 가 발전 함 에 따라 ASCII 인 코딩 은 256 글자 로 확장 되 었 고 인 코딩 대조 표 는 다음 과 같다.

    그 중 128 자 를 확장 ASCII 코드 라 고 합 니 다.
    2.GBK 와 GB 2312 인 코딩
    ASCII 인 코딩 은 256 글자 로 만 이 루어 질 수 있 기 때문에 1 바이트 로 만 중국 어 를 표시 하 는 것 은 불가능 하기 때문에 GB 2312 인 코딩 을 제정 하여 중국 어 를 나타 내 는 대조 표를 만 들 었 다.
    4.Unicode
    각 국가의 인 코딩 충돌 문 제 를 해결 하기 위해 유 니 코드 인 코딩 은 이 로 인해 발생 한다.유 니 코드 는 모든 언어 를 하나의 인 코딩 으로 통일 하면 충돌 을 피하 고 난 장 판 을 일 으 킬 수 있다.
    유 니 코드 b 기준 이 계속 발전 하고 있 습 니 다.가장 많이 사용 되 는 것 은 두 개의 바이트 로 한 문 자 를 표시 하 는 것 입 니 다.어떤 문 자 는 4 개의 바이트 이지 만 중국 어 는 두 개의 바이트 를 차지 합 니 다.유 니 코드 인 코딩 으로 통일 되면 저장 과 전송 에 있어 서 수지 가 맞지 않 습 니 다.
    5.UTF-8 인 코딩
    유 니 코드 인 코딩 이 너무 큰 문 제 를 해결 하기 위해 가 변 길이 인 코딩 UTF-8 을 내 놓 았 고,UTF-8 인 코딩 은 유 니 코드 문 자 를 데이터 크기 에 따라 1~6 개의 바이트 로 프로 그래 밍 하 였 으 며,그 중 중국어 가 3 개의 바이트 를 차지 하 였 다.
    6.인 코딩 과 디 코딩
    1.인 코딩 작업
    encode 를 통 해 인 코딩 할 수 있 습 니 다.그 중에서 문법 은 다음 과 같 습 니 다.
    문자열 을 ASCII 인 코딩 합 니 다.(숫자,영문 자모,일부 기호 만 변환 할 수 있 습 니 다.)
    
    #   1:   bytes  
    bytes('a', 'ASCII')
    #   2:   encode    
    'a'.encode('ASCII') 
    
    문자열 을 gbk 인 코딩 형식 으로 변환 합 니 다.
    
    #   1:   encode    
    print('  '.encode('GBK')) #         :b'\xc4\xe3\xba\xc3'
    #   2:   bytes  
    print(bytes('   ', 'GBK')) #         :b'\xce\xd2\xb0\xae\xc4\xe3'
    
    문자열 을 유 니 코드 인 코딩 형식 으로 변환
    
    #   1:   encode    
    print('  '.encode('unicode_escape')) #         :b'\\u4f60\\u597d'
    #   2:   bytes  
    print(bytes('   ', 'unicode_escape')) #         :b'\\u6211\\u7231\\u4f60'
    
    문자열 을 UTF-8 인 코딩 형식 으로 변환
    
    #   1:   encode    
    print('  '.encode('utf-8')) #         :b'\xe4\xbd\xa0\xe5\xa5\xbd'
    #   2:   bytes  
    print(bytes('   ', 'utf-8')) #         :b'\xe6\x88\x91\xe7\x88\xb1\xe4\xbd\xa0'
    
    2.디 코딩 작업
    GBK 인 코딩 형식 을 문자열 로 변환
    
    #   decode    
    print(b'\xc4\xe3\xba\xc3\xce\xd2\xb0\xae\xc4\xe3'.decode('GBK')) #        :     
    
    UTF-8 인 코딩 형식 을 문자열 로 변환
    
    #   decode    
    print(b'\xe4\xbd\xa0\xe5\xa5\xbd\xe6\x88\x91\xe7\x88\xb1\xe4\xbd\xa0'.decode('utf-8')) #        :     
    
    Uniconde 인 코딩 형식 을 문자열 로 변환 합 니 다.
    
    #   decode    
    print(b'\\u4f60\\u597d\\u6211\\u7231\\u4f60'.decode('GBK')) #        :     
    python 에 있 는 문자열 의 인 코딩 과 디 코딩 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 python 문자열 의 인 코딩 과 디 코딩 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 지원 바 랍 니 다!

    좋은 웹페이지 즐겨찾기