【发布时间】:2021-10-26 21:39:01
【问题描述】:
问题在于字符 Ğ、ğ、Ş、ş
这是我的代码:
# save file
def save_file():
file = filedialog.asksaveasfile(defaultextension='.txt', filetypes=[("Text File","*.txt"),
("HTML File", "*.html"), ("DOC File", "*.doc"),
("All Files", "*.*")])
if file is None:
return
file_text = text_box.get('1.0', END)
with open("file_text.txt", mode='w', encoding='utf-8') as outFile:
outFile.write(file_text)
file.write(file_text)
file.close()
# end save as file
这是错误信息:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Program Files\Python39\lib\tkinter\__init__.py", line 1892, in __call__
return self.func(*args)
File "C:\Users\mmara\PycharmProjects\pythonProject1\risk2.py", line 163, in save_file
file.write(file_text)
File "C:\Program Files\Python39\lib\encodings\cp1252.py", line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode characters in position 8-9: character maps to <undefined>
进程以退出代码 0 结束
当我执行代码并使用“另存为”按钮时,如果 text_box 中的文本包含例如 Ş 或 ş 字符,我会收到上述错误消息...。文件未保存...。
【问题讨论】:
-
欢迎来到 Stack Overflow。请花2分钟tour。此外,打开Help center 并至少阅读How to Ask。然后,edit您的问题提供minimal reproducible example。 (特别是 which 的问题在于字符 Ğ、ğ、Ş、ş?也许您会看到 Äž、ÄŸ、Åž、ÅŸ?)
-
@JosefZ 我的猜测是字符没有正确保存
-
tkinter 没有“文本框”。如果您使用正确的术语,它会有所帮助。
-
你怎么知道它没有保存数据?你说有问题,但你没有说明问题是什么。
-
@PetrL。 ... 字符没有正确保存 与 ... 问题是字符... 的模糊描述相同。 minimal reproducible example 是相关的(任何猜测都不是)。
标签: python tkinter unicode encoding character