以 python 中可读的方式将波斯语文本写入文本文件

writing persian text into a text file in the way which could be read in python

我开发了一个简单的程序,可以向波斯语 Web 服务器发送请求并获取主页的源代码。然后我将其转换为字符串,使用 file.open (new_file , 'w') 并将字符串粘贴到其中。

当我使用 print 空闲 python 中的字符串时,我可以看到正确的波斯语单词,但我在目录中制作的文本文件是用 \xd9\x8a\xd8\xb9\n 这样的字符串编写的。

代码如下:

import urllib.request as ul
import sys

url = 'http://www.uut.ac.ir/'
resp = ul.urlopen(url).read()
string = str(resp)
create_file(filename , string)   # this function creates a text file in desktop

我还用过:

file.open(new_file , 'w' , encoding = 'utf-8')
string = resp.encode('utf-8')

但没有任何改变。任何帮助将不胜感激。

在写入文件之前解码网站内容

import urllib.request as ul
import sys

url = 'http://www.uut.ac.ir/'
resp = ul.urlopen(url).read()

string = str(resp.decode())

f=open("a.txt",'w')
f.write(string)

所以看看你的代码:

>>> resp = ul.urlopen(url).read()
>>> type(resp)
<class 'bytes'>
  1. resp 具有类型 bytes。在下你用过:
string = str(resp)

但是你忘记设置编码了。正确的命令是:

string = str(resp, encoding="utf-8")

现在您获得了正确的字符串,可以将其直接写入您的文件。

  1. 您的解决方案 2 是错误的。您必须使用 decode 而不是 encode
string = resp.decode('utf-8')