将用户输入的重音字符写入文本文件 Python 3.7
Writing accented characters from user input to a text file Python 3.7
您好,我有以下代码片段:
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')
但它仍然给我错误。
设置以下环境变量为我修复了它。
export LANG=C.UTF-8
export LC_ALL=C.UTF-8
或另一种方法是 运行 它通过:
PYTHONIOENCODING="UTF-8" python3 writetest.py
您好,我有以下代码片段:
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')
但它仍然给我错误。
设置以下环境变量为我修复了它。
export LANG=C.UTF-8
export LC_ALL=C.UTF-8
或另一种方法是 运行 它通过:
PYTHONIOENCODING="UTF-8" python3 writetest.py