%% Created: 22.09.99
%% RCS-ID: $Id$
%% Copyright: (c) 1999 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
-%% Licence: wxWidgets license
+%% Licence: wxWindows license
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Unicode support in wxWidgets}\label{unicode}
What happens here? First of all, you see that there are no more {\tt \#ifdef}s
at all. Instead, we define some types and macros which behave differently in
-the Unicode and ANSI builds and allows us to avoid using conditional
+the Unicode and ANSI builds and allow us to avoid using conditional
compilation in the program itself.
We have a {\tt wxChar} type which maps either on {\tt char} or {\tt wchar\_t}
Unicode or ANSI strings and which thus makes it unnecessary to ever perform
any conversions in the program). GTK 2.0 only accepts UTF-8 strings.
-To get a ANSI string from a wxString, you may use the
+To get an ANSI string from a wxString, you may use the
mb\_str() function which always returns an ANSI
string (independently of the mode - while the usual
\helpref{c\_str()}{wxstringcstr} returns a pointer to the internal
useful, is wc\_str() function which always returns
the Unicode string.
+Sometimes it is also necessary to go from ANSI strings to wxStrings.
+In this case, you can use the converter-constructor, as follows:
+
+\begin{verbatim}
+ const char* ascii_str = "Some text";
+ wxString str(ascii_str, wxConvUTF8);
+\end{verbatim}
+
+This code also compiles fine under a non-Unicode build of wxWidgets,
+but in that case the converter is ignored.
+
+For more information about converters and Unicode see
+the \helpref{wxMBConv classes overview}{mbconvclasses}.
+
% TODO describe fn_str(), wx_str(), wxCharBuf classes, ...
\subsection{Unicode-related compilation settings}\label{unicodesettings}
You should define {\tt wxUSE\_UNICODE} to $1$ to compile your program in
Unicode mode. Note that it currently only works in Win32 and GTK 2.0 and
that some parts of
-wxWidgets are not Unicode-compliant yet (ODBC classes, for example). If you
+wxWidgets are not Unicode-compliant yet. If you
compile your program in ANSI mode you can still define {\tt wxUSE\_WCHAR\_T}
to get some limited support for {\tt wchar\_t} type.