>백엔드 개발 >파이썬 튜토리얼 >Python의 변환 모듈 코덱에 대한 설명(예제 포함)

Python의 변환 모듈 코덱에 대한 설명(예제 포함)

不言
不言앞으로
2018-10-29 17:13:257443검색

이 글은 Python의 변환 모듈 코덱에 대한 설명을 제공합니다(예제 포함). 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

0, 인코딩

인코딩을 변환할 때 일반적으로 중간 인코딩으로 유니코드를 사용해야 합니다. 즉, 먼저 다른 인코딩의 문자를 변환합니다. 문자열은 유니코드로 디코딩된 다음 유니코드에서 다른 인코딩으로 인코딩됩니다.

str1.decode('gb2312')    #将gb2312编码的字符串转换成unicode编码
str2.encode('gb2312')    #将unicode编码的字符串转换成gb2312编码

참고:

s='중국어' utf8 파일에 있는 경우 문자열은 utf8로 인코딩됩니다. gb2312 파일에 있는 경우 인코딩입니다. gb2312입니다. 이 경우 인코딩 변환을 수행하려면 먼저 decode 메소드를 사용하여 유니코드 인코딩으로 변환한 다음 encode 메소드를 사용하여 다른 인코딩으로 변환해야 합니다.
특정 인코딩 방법을 지정하지 않은 경우 시스템 기본 인코딩을 사용하여 코드 파일이 생성됩니다.
문자열이 다음과 같이 정의되면: s=u'중국어', 문자열 인코딩은 코드 파일 자체의 인코딩에 관계없이 Python의 내부 인코딩인 유니코드로 지정됩니다. 인코딩 방법을 직접 사용하여 지정된 인코딩으로 변환하면 됩니다.
문자열이 이미 유니코드인 경우 디코딩 시 오류가 발생하므로 일반적으로 인코딩 방법이 유니코드인지 여부를 확인해야 합니다. (s, unicode) #유니코드인지 확인하는데 사용됩니다

1. 인코딩 방법을 확인하세요

(1) 우리가 자주 사용하는 메모장의 경우 "파일" -> ; "다른 이름으로 저장하여 현재 인코딩 방법을 확인하세요.
(2) 메모장++로 열고 "메뉴 표시줄" -> "포맷"을 클릭하여 확인하세요.
(3) UltraEdit:
다른 인코딩을 가진 텍스트의 인코딩 형식은 텍스트의 처음 2바이트를 기준으로 정의됩니다.

ANSI: ​​​​​​​​​​​​​​
Unicode: 처음 2바이트는 FFFE입니다.
Unicode 빅 엔디안: 처음 2바이트는 FEFF입니다. : 처음 2바이트는 EFBB입니다.
이렇게 하면 파일의 특정 형식은 처음 2바이트로 결정될 수 있습니다.

2, 파이썬 인코딩

파이썬이 인코딩을 변환하려고 할 때, 변환 과정은 다음과 같습니다:

원래 인코딩- > ; 내부 인코딩-> 대상 인코딩

Python은 내부적으로 유니코드를 사용하여 처리되지만 유니코드를 사용할 때 고려해야 할 점은 UCS-2, 즉 65536이 있다는 것입니다. 총 코드 포인트가 있고 다른 하나는 2147483648g 코드 포인트가 있는 UCS-4입니다.

설치된 Python이 사용하는 인코딩 방법을 결정합니다.

import sys
print(sys.maxunicode)

출력 값이 65535이면 UCS-2이고, 출력이 1114111이면 UCS-입니다. 4 인코딩.

내부 코드로 변환:

c = "风卷残云"
print(type(c))
c = bytes(c,encoding='utf-8')
print(type(c))
print(c)
b = codecs.decode(c, "utf-8") #与c.decode()等效
print(type(b))
print(b)
print(c.decode())

출력:

<class &#39;str&#39;>
<class &#39;bytes&#39;>
b&#39;\xe9\xa3\x8e\xe5\x8d\xb7\xe6\xae\x8b\xe4\xba\x91&#39;
<class &#39;str&#39;>
风卷残云
风卷残云

3, 코덱 모듈

codecs는 다음 용도로 특별히 사용됩니다. 인코딩 변환. 인터페이스를 통해 다른 코드 변환으로 확장될 수 있습니다.

python3.x에서는 먼저 수동으로 유니코드로 변환하지 않고도 바이트 유형 데이터를 다른 인코딩 형식으로 직접 변환할 수 있습니다.

import codecs
a = "我爱你"
 # 创建utf-8编码器
look = codecs.lookup(&#39;utf-8&#39;)
type(a)
a = bytes(a,encoding=&#39;utf-8&#39;)
b = look.decode(a) 
print(b)

출력:

('我爱你', 9)
반환된 튜플에서 b[0]은 데이터이고 b[1]은 길이입니다.

** 코덱에서 제공하는 open 메소드를 사용하여 열린 파일의 언어 인코딩을 지정하면 읽을 때 자동으로 내부 유니코드로 변환됩니다**

f = codecs.open(filepath, 'r', 'utf8')
Read 있습니다. 여기에서 f는 for 루프를 사용하여 탐색할 수 있습니다. 물론 readline이나 readlines 함수 메서드를 사용하여 직접 읽을 수도 있습니다.

#for i in f:
#    print(i)
#f.readline()
#f.read()
#f.readlines()

위 내용은 Python의 변환 모듈 코덱에 대한 설명(예제 포함)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제