【Python】 atom의 UnicodeEncodeError, UnicodeDecodeError 방지

2811 단어 파이썬ATOM

목차



  • 문제
  • 1. UnicodeEncodeError
  • 2. UnicodeDecodeError

  • 해결책
  • 그건 그렇고
  • 참고

  • 문제



    atom의 "script"패키지 등을 사용하여 python을 실행하면 UnicodeError가 발생합니다.

    1. UnicodeEncodeError



    unicode 형 → str 형 변환시에 발생하는 에러
    print('こんにちは')
    
    UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordinal not in range(128)
    

    2. UnicodeDecodeError



    「str형」→「unicode형」변환시에 발생하는 에러

    hello.txt
    こんにちは
    
    with open('hello.txt') as f:
        f.read()
    
    UnicodeDecodeError: 'ascii' codec can't decode byte 0xe3 in position 0: ordinal not in range(128)
    

    해결책



    atom의 로케일 설정을 ja_JP.UTF-8 에 통일해 봅시다.
    init.coffee(메뉴바 「Atom」 > 「Init Script.../기동 스크립트...」)에 다음을 추기해 재기동

    init.coffee
    process.env.LANG = "ja_JP.UTF-8";
    

    그건 그렇고



    「script」패키지의 로케일 설정만 ja_JP.UTF-8로 하는 경우는,
    메뉴 바 「패키지」 > 「Script」 > 「Configure Script」로 이하와 같이 설정해 실행하면 OK입니다.


    또, 기동 스크립트에 이하와 같이 기입하는 대처법을 자주 볼 수 있습니다만, 이 방법이라면 문제 2를 해결할 수 없었습니다.

    init.coffee
    process.env.PYTHONIOENCODING = "utf-8";
    

    참고

    좋은 웹페이지 즐겨찾기