2016-05-25 24 views
0

私は、ペルシア語のWebサーバーにリクエストを送り、メインページのソースコードを取得する簡単なプログラムを開発しました。それから私はそれを文字列に変換し、file.open (new_file , 'w')を使用して文字列を貼り付けます。ペルシア語のテキストをテキストファイルに書き出します。

私は0123を使用すると、私はペルシャ語の正しい単語を見ることができますが、私がディレクトリに作ったテキストファイルは\xd9\x8a\xd8\xb9\nのような文字列で書かれています。ここで

コードです:

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) 
create_file(filename , string) # this function creates a text file in desktop 

私も使用していました。どんな助けもありがとう。

答えて

0

だからあなたのコードを見て:

>>> resp = ul.urlopen(url).read() 
>>> type(resp) 
<class 'bytes'> 
  1. respはタイプbytesを持っています。隣では、使用している:
string = str(resp) 

しかし、あなたは、エンコーディングを設定するのを忘れています。正しいコマンドは:

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

これで、正しい文字列が得られ、これをファイルに直接書き込むことができます。

  1. ソリューション2は偽です。 encodeの代わりにdecodeを使用する必要があります。
string = resp.decode('utf-8') 
0

ファイルに書き込みする前に、Webサイトのコンテンツをデコード

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) 
関連する問題