#include </home/zeitlin/src/wx/github/interface/wx/encconv.h>
This class is capable of converting strings between two 8-bit encodings/charsets.
It can also convert from/to Unicode.
Only a limited subset of encodings is supported by wxEncodingConverter: wxFONTENCODING_ISO8859_1
..15, wxFONTENCODING_CP1250
..1257 and wxFONTENCODING_KOI8
.
Public Member Functions | |
wxEncodingConverter () | |
Constructor. | |
bool | Init (wxFontEncoding input_enc, wxFontEncoding output_enc, int method=wxCONVERT_STRICT) |
Initialize the conversion. | |
Conversion functions | |
bool | Convert (const char *input, char *output) const |
Convert input string according to settings passed to Init() and writes the result to output. | |
bool | Convert (const wchar_t *input, wchar_t *output) const |
Convert input string according to settings passed to Init() and writes the result to output. | |
bool | Convert (const char *input, wchar_t *output) const |
Convert input string according to settings passed to Init() and writes the result to output. | |
bool | Convert (const wchar_t *input, char *output) const |
Convert input string according to settings passed to Init() and writes the result to output. | |
bool | Convert (char *str) const |
Convert input string according to settings passed to Init() in-place. | |
bool | Convert (wchar_t *str) const |
Convert input string according to settings passed to Init() in-place. | |
wxString | Convert (const wxString &input) const |
Convert a wxString and return a new wxString object. | |
Static Public Member Functions | |
static bool | CanConvert (wxFontEncoding encIn, wxFontEncoding encOut) |
Return true if (any text in) multibyte encoding encIn can be converted to another one (encOut) losslessly. | |
static wxFontEncodingArray | GetAllEquivalents (wxFontEncoding enc) |
Similar to GetPlatformEquivalents(), but this one will return ALL equivalent encodings, regardless of the platform, and including itself. | |
static wxFontEncodingArray | GetPlatformEquivalents (wxFontEncoding enc, int platform=wxPLATFORM_CURRENT) |
Return equivalents for given font that are used under given platform. |
wxEncodingConverter::wxEncodingConverter | ( | ) |
Constructor.
static bool wxEncodingConverter::CanConvert | ( | wxFontEncoding | encIn, |
wxFontEncoding | encOut | ||
) | [static] |
Return true if (any text in) multibyte encoding encIn can be converted to another one (encOut) losslessly.
Do not call this method with wxFONTENCODING_UNICODE
as either parameter, it doesn't make sense (always works in one sense and always depends on the text to convert in the other).
bool wxEncodingConverter::Convert | ( | const char * | input, |
char * | output | ||
) | const |
Convert input string according to settings passed to Init() and writes the result to output.
All the Convert() function overloads return true if the conversion was lossless and false if at least one of the characters couldn't be converted was and replaced with '?' in the output.
Note that if wxCONVERT_SUBSTITUTE
was passed to Init(), substitution is considered a lossless operation.
bool wxEncodingConverter::Convert | ( | const char * | input, |
wchar_t * | output | ||
) | const |
Convert input string according to settings passed to Init() and writes the result to output.
All the Convert() function overloads return true if the conversion was lossless and false if at least one of the characters couldn't be converted was and replaced with '?' in the output.
Note that if wxCONVERT_SUBSTITUTE
was passed to Init(), substitution is considered a lossless operation.
Convert a wxString and return a new wxString object.
See the Convert(const char*,char*) const overload for more info.
bool wxEncodingConverter::Convert | ( | const wchar_t * | input, |
char * | output | ||
) | const |
Convert input string according to settings passed to Init() and writes the result to output.
All the Convert() function overloads return true if the conversion was lossless and false if at least one of the characters couldn't be converted was and replaced with '?' in the output.
Note that if wxCONVERT_SUBSTITUTE
was passed to Init(), substitution is considered a lossless operation.
bool wxEncodingConverter::Convert | ( | wchar_t * | str | ) | const |
Convert input string according to settings passed to Init() in-place.
With this overload, the conversion result is written to the same memory area from which the input is read.
See the Convert(const wchar_t*,wchar_t*) const overload for more info.
bool wxEncodingConverter::Convert | ( | char * | str | ) | const |
Convert input string according to settings passed to Init() in-place.
With this overload, the conversion result is written to the same memory area from which the input is read.
See the Convert(const char*,char*) const overload for more info.
bool wxEncodingConverter::Convert | ( | const wchar_t * | input, |
wchar_t * | output | ||
) | const |
Convert input string according to settings passed to Init() and writes the result to output.
All the Convert() function overloads return true if the conversion was lossless and false if at least one of the characters couldn't be converted was and replaced with '?' in the output.
Note that if wxCONVERT_SUBSTITUTE
was passed to Init(), substitution is considered a lossless operation.
static wxFontEncodingArray wxEncodingConverter::GetAllEquivalents | ( | wxFontEncoding | enc | ) | [static] |
Similar to GetPlatformEquivalents(), but this one will return ALL equivalent encodings, regardless of the platform, and including itself.
This platform's encodings are before others in the array. And again, if enc is in the array, it is the very first item in it.
static wxFontEncodingArray wxEncodingConverter::GetPlatformEquivalents | ( | wxFontEncoding | enc, |
int | platform = wxPLATFORM_CURRENT |
||
) | [static] |
Return equivalents for given font that are used under given platform.
Supported platforms:
wxPLATFORM_CURRENT means the platform this binary was compiled for.
Examples:
current platform enc returned value ---------------------------------------------- unix CP1250 {ISO8859_2} unix ISO8859_2 {ISO8859_2} windows ISO8859_2 {CP1250} unix CP1252 {ISO8859_1,ISO8859_15}
Equivalence is defined in terms of convertibility: two encodings are equivalent if you can convert text between then without losing information (it may - and will - happen that you lose special chars like quotation marks or em-dashes but you shouldn't lose any diacritics and language-specific characters when converting between equivalent encodings).
Remember that this function does NOT check for presence of fonts in system. It only tells you what are most suitable encodings. (It usually returns only one encoding.)
bool wxEncodingConverter::Init | ( | wxFontEncoding | input_enc, |
wxFontEncoding | output_enc, | ||
int | method = wxCONVERT_STRICT |
||
) |
Initialize the conversion.
Both output or input encoding may be wxFONTENCODING_UNICODE, but only if wxUSE_ENCODING is set to 1.
All subsequent calls to Convert() will interpret its argument as a string in input_enc encoding and will output string in output_enc encoding.
You must call this method before calling Convert. You may call it more than once in order to switch to another conversion.
method affects behaviour of Convert() in case input character cannot be converted because it does not exist in output encoding:
Both modes guarantee that output string will have same length as input string.