Contents Up Previous Next

wxMBConvFile

This class used to define the class instance wxConvFileName, but nowadays wxConvFileName is either of type wxConvLibc (on most platforms) or wxConvUTF8 (on MacOS X). wxConvFileName converts filenames between filesystem multibyte encoding and Unicode. wxConvFileName can also be set to a something else at run-time which is used e.g. by wxGTK to use a class which checks the environment variable G_FILESYSTEM_ENCODING indicating that filenames should not be interpreted as UTF8 and also for converting invalid UTF8 characters (e.g. if there is a filename in iso8859_1) to strings with octal values.

Since some platforms (such as Win32) use Unicode in the filenames, and others (such as Unix) use multibyte encodings, this class should only be used directly if wxMBFILES is defined to 1. A convenience macro, wxFNCONV, is defined to wxConvFileName->cWX2MB in this case. You could use it like this:

wxChar *name = wxT("rawfile.doc");
FILE *fil = fopen(wxFNCONV(name), "r");
(although it would be better to use wxFopen(name, wxT("r")) in this case.)

Derived from

wxMBConv

Include files

<wx/strconv.h>

See also

wxMBConv classes overview

Members

wxMBConvFile::MB2WC
wxMBConvFile::WC2MB


wxMBConvFile::MB2WC

size_t MB2WC(wchar_t* buf, const char* psz, size_t n) const

Converts from multibyte filename encoding to Unicode. Returns the size of the destination buffer.


wxMBConvFile::WC2MB

size_t WC2MB(char* buf, const wchar_t* psz, size_t n) const

Converts from Unicode to multibyte filename encoding. Returns the size of the destination buffer.