将用户输入中的重音字符写入文本文件Python 3.7

时间:2019-04-12 06:51:45

标签: python-3.7 python-unicode

您好,我有以下代码段:

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 :(得分:0)

设置以下环境变量为我修复了该问题。

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

或另一种方法通过以下方式运行它: PYTHONIOENCODING="UTF-8" python3 writetest.py