非ASCII文字をエンコードして、URL内に配置してurlopen
で使用できるようにしています。問題は、JavaScriptのようなエンコードが必要なことです(たとえば、ó
を%C3%B3
としてエンコードします)。
encodeURIComponent(ó)
'%C3%B3'
しかし、pythonのurllib.quote
は、ó
を%F3
として返します。
urllib.quote(ó)
'%F3'
PythonでJavaScriptのencodeURIComponent
のようなエンコーディングを実現する方法、および中国語のようなISO 8859-1
以外の文字をエンコードできるかどうかを知りたいです。ありがとう!
ユニコードを使用していることを確認したい。
例:
import urllib
s = u"ó"
print urllib.quote(s.encode("utf-8"))
出力:
%C3%B3
Python 3では、urllib.quote
は urllib.parse.quote
に名前が変更されました。
また、Python 3では、すべての文字列はUnicode文字列です(バイト文字列は bytes
と呼ばれます)。
例:
from urllib.parse import quote
print(quote('ó'))
# output: %C3%B3