15 lines
310 B
Haskell
15 lines
310 B
Haskell
import qualified Data.Char as Char
|
|
import Text.Printf
|
|
|
|
encode :: Char -> String
|
|
encode c
|
|
| c == ' ' = "+"
|
|
| Char.isAlphaNum c || c `elem` "-._~" = [c]
|
|
| otherwise = printf "%%%02X" c
|
|
|
|
urlEncode :: String -> String
|
|
urlEncode = concatMap encode
|
|
|
|
main :: IO ()
|
|
main = putStrLn $ urlEncode "http://foo bar/"
|