[topic] URL特殊文字のエスケープ

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

Posted feedbacks - Haskell

Network.URIモジュールの escapeURIString を使います.このモジュールは,
RFC3986に準拠しています.
ewcapeURIString の型は (Char -> Bool) -> String -> String で,
第一引数にEscapeしなくてよい文字を判定する述語を渡します.


*Main> mapM_ putStrLn $ [ escape p x | p <- [isUnreserved,isAllowedInURI,isUnescapedInURI], x <- [sample0, sample1]]
~url%20quote%2F%E3%81%BB%E3%81%92
%21%28foo%2A%29
~url%20quote/%E3%81%BB%E3%81%92
!(foo*)
~url%20quote/%E3%81%BB%E3%81%92
!(foo*)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
import Network.URI
import Codec.Binary.UTF8.String
import qualified System.IO.UTF8 as U

escape p = escapeURIString p . encodeString

unescape = decodeString . unEscapeString

sample0 = "~url quote/ほげ"
sample1 = "!(foo*)"

Index

Feed

Other

Link

Pathtraq

loading...