]>
Commit | Line | Data |
---|---|---|
c958260b VS |
1 | % |
2 | % automatically generated by HelpGen from | |
3 | % encconv.h at 30/Dec/99 18:45:16 | |
4 | % | |
5 | ||
c958260b VS |
6 | \section{\class{wxEncodingConverter}}\label{wxencodingconverter} |
7 | ||
a663cce7 | 8 | This class is capable of converting strings between two |
457e6c54 | 9 | 8-bit encodings/charsets. It can also convert from/to Unicode (but only |
1599f54e JS |
10 | if you compiled wxWidgets with wxUSE\_WCHAR\_T set to 1). Only a limited subset |
11 | of encodings is supported by wxEncodingConverter: | |
a663cce7 VS |
12 | {\tt wxFONTENCODING\_ISO8859\_1..15}, {\tt wxFONTENCODING\_CP1250..1257} and |
13 | {\tt wxFONTENCODING\_KOI8}. | |
14 | ||
15 | \wxheading{Note} | |
16 | ||
17 | Please use \helpref{wxMBConv classes}{mbconvclasses} instead | |
18 | if possible. \helpref{wxCSConv}{wxcsconv} has much better support for various | |
19 | encodings than wxEncodingConverter. wxEncodingConverter is useful only | |
20 | if you rely on {\tt wxCONVERT\_SUBSTITUTE} mode of operation (see | |
21 | \helpref{Init}{wxencodingconverterinit}). | |
c958260b | 22 | |
c958260b VS |
23 | \wxheading{Derived from} |
24 | ||
25 | \helpref{wxObject}{wxobject} | |
26 | ||
9704b250 VS |
27 | \wxheading{Include files} |
28 | ||
29 | <wx/encconv.h> | |
30 | ||
a7af285d VZ |
31 | \wxheading{Library} |
32 | ||
33 | \helpref{wxBase}{librarieslist} | |
34 | ||
04a4a2af VS |
35 | \wxheading{See also} |
36 | ||
37 | \helpref{wxFontMapper}{wxfontmapper}, | |
f6bcfd97 | 38 | \helpref{wxMBConv}{wxmbconv}, |
04a4a2af VS |
39 | \helpref{Writing non-English applications}{nonenglishoverview} |
40 | ||
41 | ||
c958260b VS |
42 | \latexignore{\rtfignore{\wxheading{Members}}} |
43 | ||
5bc97d1b | 44 | |
c958260b VS |
45 | \membersection{wxEncodingConverter::wxEncodingConverter}\label{wxencodingconverterwxencodingconverter} |
46 | ||
47 | \func{}{wxEncodingConverter}{\void} | |
48 | ||
49 | Constructor. | |
50 | ||
5bc97d1b | 51 | |
c958260b VS |
52 | \membersection{wxEncodingConverter::Init}\label{wxencodingconverterinit} |
53 | ||
54 | \func{bool}{Init}{\param{wxFontEncoding }{input\_enc}, \param{wxFontEncoding }{output\_enc}, \param{int }{method = wxCONVERT\_STRICT}} | |
55 | ||
2edb0bde | 56 | Initialize conversion. Both output or input encoding may |
c958260b VS |
57 | be wxFONTENCODING\_UNICODE, but only if wxUSE\_ENCODING is set to 1. |
58 | All subsequent calls to \helpref{Convert()}{wxencodingconverterconvert} | |
457e6c54 JS |
59 | will interpret its argument |
60 | as a string in {\it input\_enc} encoding and will output string in | |
c958260b VS |
61 | {\it output\_enc} encoding. |
62 | You must call this method before calling Convert. You may call | |
63 | it more than once in order to switch to another conversion. | |
64 | {\it Method} affects behaviour of Convert() in case input character | |
65 | cannot be converted because it does not exist in output encoding: | |
66 | ||
457e6c54 | 67 | \begin{twocollist}\itemsep=0pt |
c958260b | 68 | \twocolitem{{\bf wxCONVERT\_STRICT}}{follow behaviour of GNU Recode - |
f6bcfd97 | 69 | just copy unconvertible characters to output and don't change them |
c958260b VS |
70 | (its integer value will stay the same)} |
71 | \twocolitem{{\bf wxCONVERT\_SUBSTITUTE}}{try some (lossy) substitutions | |
f6bcfd97 | 72 | - e.g. replace unconvertible latin capitals with acute by ordinary |
c958260b VS |
73 | capitals, replace en-dash or em-dash by '-' etc.} |
74 | \end{twocollist} | |
75 | ||
f6bcfd97 | 76 | Both modes guarantee that output string will have same length |
c958260b VS |
77 | as input string. |
78 | ||
79 | \wxheading{Return value} | |
80 | ||
cc81d32f | 81 | false if given conversion is impossible, true otherwise |
c958260b | 82 | (conversion may be impossible either if you try to convert |
fc2171bd | 83 | to Unicode with non-Unicode build of wxWidgets or if input |
c958260b VS |
84 | or output encoding is not supported.) |
85 | ||
5bc97d1b VZ |
86 | |
87 | \membersection{wxEncodingConverter::CanConvert}\label{wxencodingconvertercanconvert} | |
88 | ||
1599f54e | 89 | \func{static bool}{CanConvert}{\param{wxFontEncoding }{encIn}, \param{wxFontEncoding }{encOut}} |
5bc97d1b VZ |
90 | |
91 | Return true if (any text in) multibyte encoding \arg{encIn} can be converted to | |
b325f27f | 92 | another one ({\it encOut}) losslessly. |
5bc97d1b VZ |
93 | |
94 | Do not call this method with \texttt{wxFONTENCODING\_UNICODE} as either | |
95 | parameter, it doesn't make sense (always works in one sense and always depends | |
96 | on the text to convert in the other). | |
97 | ||
98 | ||
c958260b VS |
99 | \membersection{wxEncodingConverter::Convert}\label{wxencodingconverterconvert} |
100 | ||
02c92ad9 | 101 | \constfunc{bool}{Convert}{\param{const char* }{input}, \param{char* }{output}} |
7a766dcd | 102 | |
02c92ad9 | 103 | \constfunc{bool}{Convert}{\param{const wchar\_t* }{input}, \param{wchar\_t* }{output}} |
7a766dcd | 104 | |
02c92ad9 | 105 | \constfunc{bool}{Convert}{\param{const char* }{input}, \param{wchar\_t* }{output}} |
7a766dcd | 106 | |
02c92ad9 | 107 | \constfunc{bool}{Convert}{\param{const wchar\_t* }{input}, \param{char* }{output}} |
7a766dcd VS |
108 | |
109 | Convert input string according to settings passed to | |
110 | \helpref{Init}{wxencodingconverterinit} and writes the result to {\it output}. | |
111 | ||
02c92ad9 | 112 | \constfunc{bool}{Convert}{\param{char* }{str}} |
7a766dcd | 113 | |
02c92ad9 | 114 | \constfunc{bool}{Convert}{\param{wchar\_t* }{str}} |
7a766dcd VS |
115 | |
116 | Convert input string according to settings passed to | |
117 | \helpref{Init}{wxencodingconverterinit} in-place, i.e. write the result to the | |
118 | same memory area. | |
119 | ||
02c92ad9 VS |
120 | All of the versions above return \true if the conversion was lossless and |
121 | \false if at least one of the characters couldn't be converted and was replaced | |
122 | with {\tt '?'} in the output. Note that if {\tt wxCONVERT\_SUBSTITUTE} was | |
123 | passed to \helpref{Init}{wxencodingconverterinit}, substitution is considered | |
124 | lossless operation. | |
125 | ||
57c5293e | 126 | \constfunc{wxString}{Convert}{\param{const wxString\& }{input}} |
c958260b | 127 | |
7a766dcd | 128 | Convert wxString and return new wxString object. |
c958260b | 129 | |
7a766dcd | 130 | \wxheading{Notes} |
c958260b | 131 | |
7a766dcd | 132 | You must call \helpref{Init}{wxencodingconverterinit} before using this method! |
5b5d025c | 133 | |
fc2171bd | 134 | {\tt wchar\_t} versions of the method are not available if wxWidgets was compiled |
7a766dcd | 135 | with {\tt wxUSE\_WCHAR\_T} set to 0. |
c958260b | 136 | |
5bc97d1b | 137 | |
c958260b VS |
138 | \membersection{wxEncodingConverter::GetPlatformEquivalents}\label{wxencodingconvertergetplatformequivalents} |
139 | ||
5b5d025c | 140 | \func{static wxFontEncodingArray}{GetPlatformEquivalents}{\param{wxFontEncoding }{enc}, \param{int }{platform = wxPLATFORM\_CURRENT}} |
c958260b VS |
141 | |
142 | Return equivalents for given font that are used | |
143 | under given platform. Supported platforms: | |
144 | ||
457e6c54 | 145 | \begin{itemize}\itemsep=0pt |
c958260b VS |
146 | \item wxPLATFORM\_UNIX |
147 | \item wxPLATFORM\_WINDOWS | |
148 | \item wxPLATFORM\_OS2 | |
149 | \item wxPLATFORM\_MAC | |
150 | \item wxPLATFORM\_CURRENT | |
151 | \end{itemize} | |
152 | ||
2edb0bde | 153 | wxPLATFORM\_CURRENT means the platform this binary was compiled for. |
c958260b VS |
154 | |
155 | Examples: | |
457e6c54 | 156 | |
c958260b VS |
157 | \begin{verbatim} |
158 | current platform enc returned value | |
159 | ---------------------------------------------- | |
160 | unix CP1250 {ISO8859_2} | |
161 | unix ISO8859_2 {ISO8859_2} | |
162 | windows ISO8859_2 {CP1250} | |
163 | unix CP1252 {ISO8859_1,ISO8859_15} | |
164 | \end{verbatim} | |
165 | ||
166 | Equivalence is defined in terms of convertibility: | |
f6bcfd97 BP |
167 | two encodings are equivalent if you can convert text between |
168 | then without losing information (it may - and will - happen | |
169 | that you lose special chars like quotation marks or em-dashes | |
170 | but you shouldn't lose any diacritics and language-specific | |
c958260b VS |
171 | characters when converting between equivalent encodings). |
172 | ||
173 | Remember that this function does {\bf NOT} check for presence of | |
174 | fonts in system. It only tells you what are most suitable | |
175 | encodings. (It usually returns only one encoding.) | |
176 | ||
177 | \wxheading{Notes} | |
178 | ||
457e6c54 JS |
179 | \begin{itemize}\itemsep=0pt |
180 | \item Note that argument {\it enc} itself may be present in the returned array, | |
f6bcfd97 | 181 | so that you can, as a side-effect, detect whether the |
457e6c54 | 182 | encoding is native for this platform or not. |
f6bcfd97 BP |
183 | \item \helpref{Convert}{wxencodingconverterconvert} is not limited to |
184 | converting between equivalent encodings, it can convert between two arbitrary | |
185 | encodings. | |
186 | \item If {\it enc} is present in the returned array, then it is {\bf always} the first | |
5b5d025c | 187 | item of it. |
f6bcfd97 | 188 | \item Please note that the returned array may contain no items at all. |
c958260b VS |
189 | \end{itemize} |
190 | ||
5bc97d1b | 191 | |
c958260b VS |
192 | \membersection{wxEncodingConverter::GetAllEquivalents}\label{wxencodingconvertergetallequivalents} |
193 | ||
5b5d025c | 194 | \func{static wxFontEncodingArray}{GetAllEquivalents}{\param{wxFontEncoding }{enc}} |
c958260b VS |
195 | |
196 | Similar to | |
197 | \helpref{GetPlatformEquivalents}{wxencodingconvertergetplatformequivalents}, | |
198 | but this one will return ALL | |
f6bcfd97 | 199 | equivalent encodings, regardless of the platform, and including itself. |
c958260b | 200 | |
5b5d025c VS |
201 | This platform's encodings are before others in the array. And again, if {\it enc} is in the array, |
202 | it is the very first item in it. | |
457e6c54 | 203 |