Use wxMBConvUTF8 when G_FILENAME_ENCODING is UTF-8, and set

G_FILENAME_ENCODING to match the locale encoding when necessary


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@33231 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Michael Wetherell 2005-04-01 00:00:08 +00:00
parent 89eb18ec8b
commit 914955aaa0

View File

@ -369,26 +369,28 @@ wxConvBrokenFileNames::wxConvBrokenFileNames()
// (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 )
wxString encName(wxGetenv(_T("G_FILENAME_ENCODING")));
encName.MakeUpper();
if ( !encName.empty() && encName != _T("UTF-8") && encName != _T("UTF8") )
{
m_conv = new wxCSConv(encName);
}
else // no G_FILENAME_ENCODING
{
if ( encName.empty() )
encName = wxLocale::GetSystemEncodingName().Upper();
// (2) if a non default locale is set, assume that the user wants his
// filenames in this locale too
switch ( wxLocale::GetSystemEncoding() )
if ( !encName.empty() && encName != _T("UTF-8") && encName != _T("UTF8") )
{
wxSetEnv(_T("G_FILENAME_ENCODING"), encName);
m_conv = new wxMBConvLibc;
}
else
{
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;
m_conv = new wxMBConvUTF8(wxMBConvUTF8::MAP_INVALID_UTF8_TO_OCTAL);
}
}
}