web-encodings-0.2.3: Encapsulate multiple web encoding in a single package.

MaintainerMichael Snoyman <michael@snoyman.com>




Various web encodings.


Simple encodings.

URL (percentage encoding)

encodeUrl :: StringLike a => a -> aSource

Encode all but unreserved characters with percentage encoding.

This function implicitly converts the given value to a UTF-8 bytestream.

decodeUrl :: StringLike s => s -> sSource

Decode percentage encoding. Assumes use of UTF-8 character encoding.

If there are any parse errors, this returns the original input. If you would like to be alerted more directly of errors, use decodeUrlFailure.

decodeUrlFailure :: (MonadFailure DecodeUrlException m, StringLike s) => s -> m sSource

Same as decodeUrl, but failures on either invalid percent or UTF8 encoding.

HTML (entity encoding)

encodeHtml :: StringLike s => s -> sSource

Escape special HTML characters.

decodeHtml :: StringLike s => s -> sSource

Decode HTML-encoded content into plain content.

Note: this does not support all HTML entities available. It also swallows all failures.


encodeJson :: StringLike s => s -> sSource

Perform JSON-encoding on a string. Does not wrap in quotation marks. Taken from json package by Sigbjorn Finne.

HTTP level encoding.

Query string- pairs of percentage encoding

encodeUrlPairs :: StringLike s => [(s, s)] -> sSource

Convert a list of key-values pairs into a query string. Does not include the question mark at the beginning.

decodeUrlPairs :: StringLike s => s -> [(s, s)]Source

Convert into key-value pairs. Strips the leading ? if necesary.

decodeUrlPairsFailure :: (StringLike s, MonadFailure DecodeUrlException m) => s -> m [(s, s)]Source

Convert into key-value pairs. Strips the leading ? if necesary. failures as necesary for invalid encodings.

Post parameters

data FileInfo s c Source

Information on an uploaded file.




fileName :: s
fileContentType :: s
fileContent :: c


Show s => Show (FileInfo s a) 



:: StringLike s 
=> String


-> s


-> ([(s, s)], [(s, FileInfo s s)]) 

Parse a multipart form into parameters and files.



:: StringLike s 
=> String

content type

-> String

content length

-> s

body of the post

-> ([(s, s)], [(s, FileInfo s s)]) 

Parse a post request. This function determines the correct decoding function to use.

Specific HTTP headers

decodeCookies :: StringLike s => s -> [(s, s)]Source

Deprecate alias for parseCookies.

parseCookies :: StringLike s => s -> [(s, s)]Source

Decode the value of an HTTP_COOKIE header into key/value pairs.

parseHttpAccept :: StringLike s => s -> [s]Source

Parse the HTTP accept string to determine supported content types.

Date/time encoding

formatW3 :: UTCTime -> StringSource

Format a UTCTime in W3 format; useful for setting cookies.