Python SyntaxError: 파일의 비 ASCII 문자 xe2

Zeeshan Afridi 2023년6월21일
  1. ASCII 코드란?
  2. Python의 파일에서 SyntaxError: Non-ASCII 문자 '\xe2'는 무엇입니까
  3. Python의 파일에서 SyntaxError: Non-ASCII 문자 '\xe2'를 수정하는 방법
  4. 결론
Python SyntaxError: 파일의 비 ASCII 문자 xe2

이 오류는 코드에 ASCII가 아닌 문자를 쓰고 있음을 나타냅니다. 컴파일 시간에 인터프리터가 혼란스러워서 SyntaxError: Non-ASCII character '\xe2'를 발생시킵니다.

ASCII 문자는 UTF-8의 처음 128자와 동일한 인코딩을 사용하므로 ASCII 텍스트는 UTF-8과 호환됩니다. 먼저 ASCII 문자와 비ASCII 문자의 차이점을 이해해야 합니다.

ASCII 코드란?

ASCII는 컴퓨터와 인터넷의 텍스트 데이터에 가장 널리 사용되는 문자 인코딩 형식입니다(미국 정보 교환 표준 코드).

ASCII 인코딩 데이터에는 128개의 추가 알파벳, 숫자, 특수 및 제어 문자에 대한 고유 값이 있습니다.

Python의 파일에서 SyntaxError: Non-ASCII 문자 '\xe2'는 무엇입니까

이 오류의 핵심 이유는 Python 컴파일러에서 인식하지 못하는 문자를 읽고 있기 때문입니다.

예를 들어, Python 인터프리터가 인식하지 못하는 기호 £를 사용해 봅시다.

string = "£"
fp = open("test.txt", "w+")

fp.write("%s" % string)
print(string)

출력:

SyntaxError: Non-ASCII character '\xe2'

£ 기호는 인터프리터에서 인식되지 않으므로 SyntaxError: Non-ASCII 문자 '\xe2'가 표시됩니다.

Python의 파일에서 SyntaxError: Non-ASCII 문자 '\xe2'를 수정하는 방법

여기에 우리는 프로그램 상단에 #coding: utf-8 문을 포함시켰습니다. 이 코드는 £ 값이 저장된 test.txt 파일을 생성하고 표시된 대로 출력에 인쇄합니다.

코드 예:

# coding: utf-8
string = "£"
fp = open("test.txt", "w+")

fp.write("%s" % string)
print(string)

출력:

£

오류가 제공하는 PEP를 읽으면 코드에서 사용하려는 시도에도 불구하고 £가 ASCII 문자가 아니라고 말했습니다. 가능한 경우 UTF-8 인코딩을 사용하고 시작하려면 프로그램 맨 위에 # coding: utf-8을 입력하십시오.

더 복잡해지려면 코드에서 문자열별로 인코딩 문자열을 선언할 수도 있습니다. 그러나 £ 리터럴을 코드에 추가하려는 경우 전체 파일에서 이를 지원하는 인코더가 필요합니다.

아래 주어진 코드 줄을 추가할 수도 있습니다.

#!/usr/bin/env python
# -*- coding: utf-8 -*-

결론

비ASCII는 인터프리터가 SyntaxError로 처리하므로 Python에서 허용되지 않습니다. 파이썬은 ASCII 범위 밖에 있는 일련의 바이트가 나타내는 문자열을 결정할 수 없고 시도해서도 안 됩니다.

이 오류를 해결하려면 프로그램 상단에 coding: utf-8을 추가해야 합니다.

Zeeshan Afridi avatar Zeeshan Afridi avatar

Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.

LinkedIn

관련 문장 - Python Error