utf8-string-1.0.2: Support for reading and writing UTF8 Strings
Copyright(c) Iavor S. Diatchki 2009
LicenseBSD3-style (see LICENSE)
Maintaineremertens@galois.com
Stabilityexperimental
Portabilityportable This module provides fast, validated encoding and decoding functions between 'ByteString's and 'String's. It does not exactly match the output of the Codec.Binary.UTF8.String output for invalid encodings as the number of replacement characters is sometimes longer.
Safe HaskellTrustworthy
LanguageHaskell2010

Data.ByteString.UTF8

Description

 
Synopsis

Documentation

data ByteString #

A space-efficient representation of a Word8 vector, supporting many efficient operations.

A ByteString contains 8-bit bytes, or by using the operations from Data.ByteString.Char8 it can be interpreted as containing 8-bit characters.

Instances

Instances details
Eq ByteString 
Instance details

Defined in Data.ByteString.Internal

Data ByteString 
Instance details

Defined in Data.ByteString.Internal

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ByteString -> c ByteString #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ByteString #

toConstr :: ByteString -> Constr #

dataTypeOf :: ByteString -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ByteString) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ByteString) #

gmapT :: (forall b. Data b => b -> b) -> ByteString -> ByteString #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ByteString -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ByteString -> r #

gmapQ :: (forall d. Data d => d -> u) -> ByteString -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> ByteString -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> ByteString -> m ByteString #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ByteString -> m ByteString #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ByteString -> m ByteString #

Ord ByteString 
Instance details

Defined in Data.ByteString.Internal

Read ByteString 
Instance details

Defined in Data.ByteString.Internal

Show ByteString 
Instance details

Defined in Data.ByteString.Internal

IsString ByteString 
Instance details

Defined in Data.ByteString.Internal

Semigroup ByteString 
Instance details

Defined in Data.ByteString.Internal

Monoid ByteString 
Instance details

Defined in Data.ByteString.Internal

NFData ByteString 
Instance details

Defined in Data.ByteString.Internal

Methods

rnf :: ByteString -> () #

UTF8Bytes ByteString Int Source # 
Instance details

Defined in Codec.Binary.UTF8.Generic

decode :: ByteString -> Maybe (Char, Int) Source #

Try to extract a character from a byte string. Returns Nothing if there are no more bytes in the byte string. Otherwise, it returns a decoded character and the number of bytes used in its representation. Errors are replaced by character '\0xFFFD'.

replacement_char :: Char Source #

This character is used to mark errors in a UTF8 encoded string.

uncons :: ByteString -> Maybe (Char, ByteString) Source #

Get the first character of a byte string, if any. Malformed characters are replaced by '\0xFFFD'.

splitAt :: Int -> ByteString -> (ByteString, ByteString) Source #

Split after a given number of characters. Negative values are treated as if they are 0.

take :: Int -> ByteString -> ByteString Source #

take n s returns the first n characters of s. If s has less than n characters, then we return the whole of s.

drop :: Int -> ByteString -> ByteString Source #

drop n s returns the s without its first n characters. If s has less than n characters, then we return an empty string.

span :: (Char -> Bool) -> ByteString -> (ByteString, ByteString) Source #

Split a string into two parts: the first is the longest prefix that contains only characters that satisfy the predicate; the second part is the rest of the string. Invalid characters are passed as '\0xFFFD' to the predicate.

break :: (Char -> Bool) -> ByteString -> (ByteString, ByteString) Source #

Split a string into two parts: the first is the longest prefix that contains only characters that do not satisfy the predicate; the second part is the rest of the string. Invalid characters are passed as '\0xFFFD' to the predicate.

fromChar :: Char -> ByteString Source #

Converts a Haskell char into a UTF8 encoded bytestring.

fromString :: String -> ByteString Source #

Converts a Haskell string into a UTF8 encoded bytestring.

toString :: ByteString -> String Source #

Convert a UTF8 encoded bytestring into a Haskell string. Invalid characters are replaced with '\0xFFFD'.

foldl :: (a -> Char -> a) -> a -> ByteString -> a Source #

Traverse a bytestring (left biased). This function is strict in the accumulator.

foldr :: (Char -> a -> a) -> a -> ByteString -> a Source #

Traverse a bytestring (right biased).

length :: ByteString -> Int Source #

Counts the number of characters encoded in the bytestring. Note that this includes replacement characters.

lines :: ByteString -> [ByteString] Source #

Split a string into a list of lines. Lines are terminated by '\n' or the end of the string. Empty lines may not be terminated by the end of the string. See also lines'.

lines' :: ByteString -> [ByteString] Source #

Split a string into a list of lines. Lines are terminated by '\n' or the end of the string. Empty lines may not be terminated by the end of the string. This function preserves the terminators. See also lines.