첫 번째 예는 각각 不指定编码
, 指定编码为 utf-8
, 指定编码为 utf-8-sig
세 가지 방법의 비교를 수행하는 다음 비교를 만들기 위해 CSV 파일 txt 파일을 작성
첫째, 직접 CSV 파일로 인코딩을 지정하지
import csv
with open('test.csv', 'w') as fp:
writer = csv.writer(fp)
writer.writerow(['汉语', '俄语', '韩语', '日语', '英语'])
writer.writerow(['爱你', 'люблю тебя', '사랑해요', '愛しています', 'love you'])
다음과 같은 오류가보고됩니다이 시간에 프로그램을 실행합니다 :
UnicodeEncodeError: 'gbk' codec can't encode character '\uc0ac' in position 14: illegal multibyte sequence
둘째, UTF-8 인코딩을 지정하고 CSV 파일 저장
다음 시도가 만족합니다 utf-8
영어 외에도 것을 볼 수 test.csv 파일로 인코딩, 다른 하나는 모든 깨진입니다 :
import csv
with open('test.csv', 'w', encoding='utf-8') as fp:
writer = csv.writer(fp)
writer.writerow(['汉语', '俄语', '韩语', '日语', '英语'])
writer.writerow(['爱你', 'люблю тебя', '사랑해요', '愛しています', 'love you'])
셋째, UTF-8-SIG에 인코딩을 지정하고 CSV 파일에 저장된
모드로 부호화 할 때 utf-8-sig
이후를, 디스플레이가 일반적이다 :
import csv
with open('test.csv', 'w', encoding='utf-8-sig') as fp:
writer = csv.writer(fp)
writer.writerow(['汉语', '俄语', '韩语', '日语', '英语'])
writer.writerow(['爱你', 'люблю тебя', '사랑해요', '愛しています', 'love you'])
넷째, TXT 파일로 직접 인코딩을 지정하지
with open('test.txt','w') as fp:
fp.write('爱你, люблю тебя, 사랑해요, 愛しています, love you')
그리고 CSV 파일로, 또한 다음과 같은 오류를보고했습니다 :
UnicodeEncodeError: 'gbk' codec can't encode character '\uc0ac' in position 16: illegal multibyte sequence
다음 지정된 UTF-8 / UTF-8-SIG로서 부호화하고, 다섯, TXT 파일에 저장된
로 utf-8
또는이 utf-8-sig
있는 test.txt 파일로 코딩, 내용이 완전히 정상입니다 :
with open('test.txt','w', encoding='utf-8') as fp:
fp.write('爱你, люблю тебя, 사랑해요, 愛しています, love you')
with open('test.txt','w', encoding='utf-8-sig') as fp:
fp.write('爱你, люблю тебя, 사랑해요, 愛しています, love you')
UTF-8과 UTF-8-SIG의 차이점은 무엇입니까?
-
utf-8
바이트 코딩 장치는 모든 시스템이 동일한, 더 바이트 순서 문제 없습니다되는 바이트 순서는, 실제로는 BOM을 필요로하지 않습니다; -
uft-8-sig
서명의 시그 철자, UTF-8, 즉 서명 (BOM과 UTF-8)와; -
BOM
전체 바이트 순서 마크, 바이트 순서 표시, 텍스트의 파일 헤더 나타난다는 유니 코드 인코딩 표준 파일 형식이 사용되는 식별 인코딩에 사용됩니다.
쓰기 CSV 파일을 사용하는 이유는 코딩을 UTF-8을-SIG?
-
식별 코드를 읽고 엑셀 csv 파일은 기본에 따라 더 BOM 헤더 정보, 유니 코드 인코딩을 읽을 수없는 경우, 헤드 BOM하여 파일을 읽을 수있다.
-
우리가 UTF-8 BOM 정보를 생성하지 않는 csv 파일을 생성하기 위해 인코딩 사용하면 Excel에서 자동으로 유니 코드 판독을 따를 것이다, 문제가 왜곡됩니다.
왜 쓰기 txt 파일은 UTF-8 인코딩을 사용 하는가?
- TXT 파일을 작성하는 경우, Windows가 GBK으로 트랜스 코딩 기본 것이다, GBK는 supported'll 선언 인코딩 파일을 여는 오류가 발생하지 않는 일부 문자를 만난 것은 UTF-8이 오류를 방지 할 수있을 것입니다.