在文本文件中读写 Devanagri 印地文字符

Reading and Writing Devanagri Hindi characters in text file

使用 Python 在文本文件中读写印地文梵文字符时遇到问题。

  1. Reading:
    Python 无法在我的文本文件中读取 Devanagari 字符,当实现以下代码时。

    代码:

         f=open(r"C:\Users\Dell\Desktop\abc1.txt","w")
         print(f.read())
         f.close()
    

    O/P:म(而不是म)

    虽然相同的代码为我的文件中的“&”符号生成了如下正确的输出

    O/P: &

  2. :
    以下执行抛出错误信息。
    म 的 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())