エンコードされた URI コンポーネントがあります"http://www.yelp.com/biz/carriage-house-caf%25C3%25A9-houston-2"
。"http://www.yelp.com/biz/carriage-house-café-houston-2"
以下のように、decodeURIComponent 関数を再帰的に適用することで、これを変換できます。
function recursiveDecodeURIComponent(uriComponent){
try{
var decodedURIComponent = decodeURIComponent(uriComponent);
if(decodedURIComponent == uriComponent){
return decodedURIComponent;
}
return recursiveDecodeURIComponent(decodedURIComponent);
}catch(e){
return uriComponent;
}
}
console.log(recursiveDecodeURIComponent("http://www.yelp.com/biz/carriage-house-caf%25C3%25A9-houston-2"))
出力: "http://www.yelp.com/biz/carriage-house-café-houston-2"
.
私はpythonで同じことをしたいと思います。私は次のことを試しました:
print urllib2.unquote(urllib2.unquote(urllib2.unquote("http://www.yelp.com/biz/carriage-house-caf%25C3%25A9-houston-2").decode("utf-8")))
しかし、私は得http://www.yelp.com/biz/carriage-house-café-houston-2
ました。Expected character の代わりに、urllib2.unquote の呼び出し回数に関係なくé
取得しました。'é'
私は python2.7.3 を使用しています。