IT. POST LIST

POST ALL LABEL

PYTHON3 SyntaxError: (unicode error) 'utf-8' codec can't decode byte 0xc0 in position 7: invalid start byte 한글 인식

By 때찌때찌맴매 - 3월 21, 2018


** PYTHON3 SyntaxError: (unicode error) 'utf-8' codec can't decode byte 0xc0 in position 7: invalid start byte  한글 인식


* python2 에서 한글 내용의 파일을 실행시 발행 에러.
PYTHON 2.X
[ 장애 ]
[root@localhost 02:57:26:/home/python]# python2 te.py 
  File "te.py", line 1
SyntaxError: Non-ASCII character '\xed' in file testsetst.py on line 1, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details

[ 해결 ]
# -*- coding: utf-8 -*-
추가

* python3에서는 해당 인코딩이 기본으로 적용되어 있음.

[root@localhost 03:03:07:/home/python]# cat te.py 
# -*- coding: utf-8 -*-
print ("테스트")

[ 결과 ]
[root@skhkil 03:03:10:/home/python]# python2 te.py 
테스트



* python3 에서 한글 내용의 파일을 실행시 발생 에러.
PYTHON 3.X

[ 장애 1.]
[root@localhost 02:35:46:/home/python]# python te.py 
File te.py, line 4
SyntaxError: Non-UTF-8 code starting with '0xc0' in file te.py on lin
e 1, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for deta
ils

[ 해결 ]
python3.x을 사용하는데 해당 에러는 python2.x 에서 실행되어 해당 에러가 발행 할 수 있음. 
실행시 python xxxx.py 가 아닌 python3 xxxx.py 로 실행. (버전 확인으로 python3.x확인)

[ 장애 2.]
[root@localhost 02:35:46:/home/python]# python3 te.py 
  File "te.py", line 4
SyntaxError: (unicode error) 'utf-8' codec can't decode byte 0xc0 in position 7: invalid start byte

[ 해결 ]
1. 시스템 및 접속 프로그램 언어 utf-8 변경
리눅스 기준으로 locale
LANG=ko_KR.UTF-8   <= 변경
프로그램 putty, pac접속 언어 utf-8

2. 파이썬 파일 언어셋 확인 
위 내용으로 접근하여 파일 생성 및 저장 후 코딩상태 확인시 
:set encoding 입력
encoding=utf-8  으로 확인 될 것임.

그렇지 않다면 파일을 인코딩 해야 되는데 콘솔에서 해버리면 내부 한글들이 깨지기 때문에 , 외부 프로그램등을 사용하여 저장하는게 편할 듯 합니다.

pycharm, notepad++ 등으로 인코딩 저장을 utf-8로 저장 후 서버에서 돌리면 정상적으로 확인 가능.

[ 결과 ]
[root@localhost 03:56:51:/home/python]# python -V
Python 3.6.4
[root@localhost 03:58:09:/home/python]# cat te.py 
print ("테스트")
[root@localhost 03:56:54:/home/python]# python te.py 
테스트


  • Share:

You Might Also Like

0 개의 댓글