どう書く?org : URL特殊文字のエスケープ

original page : http://ja.doukaku.org/92/

URL用に特殊な文字をエスケープする。

#4168

original page : http://ja.doukaku.org/comment/4168/

CGIwithRというライブラリーにアンエスケープの関数はあったのですが、
エスケープする関数はないようです。

> escape("~url quote/ほげ")
[1] "%7eurl%20quote%2f%82%d9%82%b0"

escape <- function(str){
    paste(sapply(unlist(strsplit(str, "")),
                 function(s){ifelse((regexpr("\\W", s, perl=TRUE)[1] > 0),
                                    paste("%", charToRaw(s), collapse="", sep=""), s)}), collapse="")
}