Запись акцентированных символов из пользовательского ввода в текстовый файл Python 3.7 - PullRequest
0 голосов
/ 12 апреля 2019

Здравствуйте, у меня есть следующий фрагмент кода:

while True:   
    try:
        entry = input("Input element: ")
        print (entry)
        with open(fileName,'a',encoding='UTF-8') as thisFile:
           thisFile.write(entry)
    except KeyboardInterrupt:
       break

Этот в основном непрерывно получает входные данные и записывает их в файл до тех пор, пока их не прервет вручную.Однако, когда пользователь вводит что-то вроде С.Он выводит: UnicodeEncodeError: 'utf-8' codec can't encode characters in position 0-1: surrogates not allowed Я явно поставил кодировку utf-8 и даже попробовал latin-1, но все та же ошибка.Я также поместил # -*- coding: utf-8 -*- поверх моего кода и попробовал thisFile.write(entry.encode('utf-8'), но это все равно дает мне ошибку.

1 Ответ

0 голосов
/ 15 апреля 2019

Установка следующих переменных окружения исправила это для меня.

export LANG=C.UTF-8
export LC_ALL=C.UTF-8

или другой метод запускает его через: PYTHONIOENCODING="UTF-8" python3 writetest.py

...