在文本文件中读写 Devanagri 印地文字符
Reading and Writing Devanagri Hindi characters in text file
使用 Python 在文本文件中读写印地文梵文字符时遇到问题。
Reading:
Python 无法在我的文本文件中读取 Devanagari 字符,当实现以下代码时。
代码:
f=open(r"C:\Users\Dell\Desktop\abc1.txt","w")
print(f.read())
f.close()
O/P:म(而不是म)
虽然相同的代码为我的文件中的“&”符号生成了如下正确的输出
O/P: &
写:
以下执行抛出错误信息。
म 的 Unicode 是 092e
代码:
f=open(r"C:\Users\Dell\Desktop\abc1.txt","w")
f.write(u"\u092e")
f.close()
错误信息:
Exception has occurred: UnicodeEncodeError
'charmap' codec can't encode character '\u092e' in position 0: character maps to <undefined>
File "C:\Users\Dell\Desktop\Python\gg.py", line 2, in <module>
f.write(u"\u092e")
而字符在标准输出上写入成功如下:
代码:
print(u"\u092e")
O/P: म
请解释为什么会这样?如何在文本文件上读写 Devanagari 字符?还有其他选择吗?
您是否尝试过使用 UTF8 或 UTF16 打开文件?这取决于你的源文件是如何保存的(使用哪种编码)。
例如,尝试:
with open(r'C:\Users\Dell\Desktop\abc1.txt','r', encoding='utf-16') as f:
print(f.read())
使用 Python 在文本文件中读写印地文梵文字符时遇到问题。
Reading:
Python 无法在我的文本文件中读取 Devanagari 字符,当实现以下代码时。代码:
f=open(r"C:\Users\Dell\Desktop\abc1.txt","w") print(f.read()) f.close()
O/P:म(而不是म)
虽然相同的代码为我的文件中的“&”符号生成了如下正确的输出
O/P: &
写:
以下执行抛出错误信息。
म 的 Unicode 是 092e
代码:f=open(r"C:\Users\Dell\Desktop\abc1.txt","w") f.write(u"\u092e") f.close()
错误信息:
Exception has occurred: UnicodeEncodeError 'charmap' codec can't encode character '\u092e' in position 0: character maps to <undefined> File "C:\Users\Dell\Desktop\Python\gg.py", line 2, in <module> f.write(u"\u092e")
而字符在标准输出上写入成功如下:
代码:
print(u"\u092e")
O/P: म
请解释为什么会这样?如何在文本文件上读写 Devanagari 字符?还有其他选择吗?
您是否尝试过使用 UTF8 或 UTF16 打开文件?这取决于你的源文件是如何保存的(使用哪种编码)。
例如,尝试:
with open(r'C:\Users\Dell\Desktop\abc1.txt','r', encoding='utf-16') as f:
print(f.read())