-bool wxConvBrokenFileNames::UseUTF8() const
-{
-#if defined HAVE_LANGINFO_H && defined CODESET
- char *codeset = nl_langinfo(CODESET);
- return strcmp(codeset, "UTF-8") == 0;
-#else
- return false;
-#endif
+ // (1) this variable exists for the sole purpose of specifying the encoding
+ // of the filenames for GTK+ programs, so use it if it is set
+ const wxChar *encName = wxGetenv(_T("G_FILENAME_ENCODING"));
+ if ( encName )
+ {
+ m_conv = new wxCSConv(encName);
+ }
+ else // no G_FILENAME_ENCODING
+ {
+ // (2) if a non default locale is set, assume that the user wants his
+ // filenames in this locale too
+ switch ( wxLocale::GetSystemEncoding() )
+ {
+ default:
+ m_conv = new wxMBConvLibc;
+ break;
+
+ // (3) finally use UTF-8 by default
+ case wxFONTENCODING_SYSTEM:
+ case wxFONTENCODING_UTF8:
+ m_conv = new wxMBConvUTF8(wxMBConvUTF8::MAP_INVALID_UTF8_TO_OCTAL);
+ break;
+ }
+ }