D
Language
Phobos
Comparisons
object
std
std.base64
std.boxer
std.compiler
std.conv
std.cover
std.ctype
std.date
std.demangle
std.file
std.format
std.gc
std.intrinsic
std.math
std.md5
std.mmfile
std.openrj
std.outbuffer
std.path
std.process
std.random
std.recls
std.regexp
std.socket
std.socketstream
std.stdint
std.stdio
std.cstream
std.stream
std.string
std.system
std.thread
std.uri
std.utf
std.zip
std.zlib
std.c.fenv
std.c.math
std.c.process
std.c.stdarg
std.c.stddef
std.c.stdio
std.c.stdlib
std.c.string
std.c.time
std.c.wcharh
std.windows.charset
std.windows
std.linux
std.c.windows
std.c.linux
|
std.utf
Encode and decode UTF-8, UTF-16 and UTF-32 strings.
For Win32 systems, the C wchar_t type is UTF-16 and corresponds to the D
wchar type.
For linux systems, the C wchar_t type is UTF-32 and corresponds to
the D utf.dchar type.
UTF character support is restricted to (\u0000 <= character <= \U0010FFFF).
See Also:
Wikipedia
http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
http://anubis.dkuug.dk/JTC1/SC2/WG2/docs/n1335
- class UtfException: object.Exception;
- Exception class that is thrown upon any errors.
- uint idx;
- index in string of where error occurred
- bool isValidDchar(dchar c);
- Test if c is a valid UTF-32 character.
\uFFFE and \uFFFF are considered valid by this function,
as they are permitted for internal use by an application,
but they are not allowed for interchange by the Unicode standard.
Returns:
true if it is, false if not.
- uint stride(char[] s, uint i);
- stride() returns the length of a UTF-8 sequence starting at index i
in string s.
Returns:
The number of bytes in the UTF-8 sequence or
0xFF meaning s[i] is not the start of of UTF-8 sequence.
- uint stride(wchar[] s, uint i);
- stride() returns the length of a UTF-16 sequence starting at index i
in string s.
- uint stride(dchar[] s, uint i);
- stride() returns the length of a UTF-32 sequence starting at index i
in string s.
Returns:
The return value will always be 1.
- uint toUCSindex(char[] s, uint i);
uint toUCSindex(wchar[] s, uint i);
uint toUCSindex(dchar[] s, uint i);
- Given an index i into an array of characters s[],
and assuming that index i is at the start of a UTF character,
determine the number of UCS characters up to that index i.
- uint toUTFindex(char[] s, uint n);
uint toUTFindex(wchar[] s, uint n);
uint toUTFindex(dchar[] s, uint n);
- Given a UCS index n into an array of characters s[], return the UTF index.
- dchar decode(char[] s, inout uint idx);
dchar decode(wchar[] s, inout uint idx);
dchar decode(dchar[] s, inout uint idx);
- Decodes and returns character starting at s[idx]. idx is advanced past the
decoded character. If the character is not well formed, a UtfException is
thrown and idx remains unchanged.
- void encode(inout char[] s, dchar c);
void encode(inout wchar[] s, dchar c);
void encode(inout dchar[] s, dchar c);
- Encodes character c and appends it to array s[].
- void validate(char[] s);
void validate(wchar[] s);
void validate(dchar[] s);
- Checks to see if string is well formed or not. Throws a UtfException if it is
not. Use to check all untrusted input for correctness.
- char[] toUTF8(char[] s);
char[] toUTF8(wchar[] s);
char[] toUTF8(dchar[] s);
- Encodes string s into UTF-8 and returns the encoded string.
- wchar[] toUTF16(char[] s);
wchar* toUTF16z(char[] s);
wchar[] toUTF16(wchar[] s);
wchar[] toUTF16(dchar[] s);
- Encodes string s into UTF-16 and returns the encoded string.
toUTF16z() is suitable for calling the 'W' functions in the Win32 API that take
an LPWSTR or LPCWSTR argument.
- dchar[] toUTF32(char[] s);
dchar[] toUTF32(wchar[] s);
dchar[] toUTF32(dchar[] s);
- Encodes string s into UTF-32 and returns the encoded string.
|