some stupid attempts to make utf8 work - it doesn't, but the code does no harm and could be useful in the future

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@9332 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2001-02-08 18:11:36 +00:00
parent cce442ba7c
commit bb84929ec5
4 changed files with 31 additions and 10 deletions

View File

@@ -64,6 +64,9 @@ enum wxFontEncoding
wxFONTENCODING_CP1257, // WinBaltic (same as Latin 7) wxFONTENCODING_CP1257, // WinBaltic (same as Latin 7)
wxFONTENCODING_CP12_MAX, wxFONTENCODING_CP12_MAX,
wxFONTENCODING_UTF7, // UTF-7 Unicode encoding
wxFONTENCODING_UTF8, // UTF-8 Unicode encoding
wxFONTENCODING_UNICODE, // Unicode - currently used only by wxFONTENCODING_UNICODE, // Unicode - currently used only by
// wxEncodingConverter class // wxEncodingConverter class

View File

@@ -557,7 +557,8 @@ void MyFrame::OnViewMsg(wxCommandEvent& WXUNUSED(event))
m_textctrl->LoadFile(filename); m_textctrl->LoadFile(filename);
if (!wxTheFontMapper->IsEncodingAvailable(fontenc)) if ( fontenc == wxFONTENCODING_UTF8 ||
!wxTheFontMapper->IsEncodingAvailable(fontenc) )
{ {
// try to find some similar encoding: // try to find some similar encoding:
wxFontEncoding encAlt; wxFontEncoding encAlt;

View File

@@ -90,6 +90,8 @@ static wxFontEncoding gs_encodings[] =
wxFONTENCODING_CP1256, wxFONTENCODING_CP1256,
wxFONTENCODING_CP1257, wxFONTENCODING_CP1257,
wxFONTENCODING_CP437, wxFONTENCODING_CP437,
wxFONTENCODING_UTF7,
wxFONTENCODING_UTF8,
}; };
// the descriptions for them // the descriptions for them
@@ -120,6 +122,8 @@ static const wxChar* gs_encodingDescs[] =
wxTRANSLATE( "Windows Arabic (CP 1256)" ), wxTRANSLATE( "Windows Arabic (CP 1256)" ),
wxTRANSLATE( "Windows Baltic (CP 1257)" ), wxTRANSLATE( "Windows Baltic (CP 1257)" ),
wxTRANSLATE( "Windows/DOS OEM (CP 437)" ), wxTRANSLATE( "Windows/DOS OEM (CP 437)" ),
wxTRANSLATE( "Unicode 7 bit (UTF-7)" ),
wxTRANSLATE( "Unicode 8 bit (UTF-8)" ),
}; };
// and the internal names // and the internal names
@@ -150,6 +154,8 @@ static const wxChar* gs_encodingNames[] =
wxT( "windows1256" ), wxT( "windows1256" ),
wxT( "windows1257" ), wxT( "windows1257" ),
wxT( "windows437" ), wxT( "windows437" ),
wxT( "utf7" ),
wxT( "utf8" ),
}; };
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
@@ -399,7 +405,7 @@ wxFontEncoding wxFontMapper::CharsetToEncoding(const wxString& charset,
RestorePath(pathOld); RestorePath(pathOld);
} }
#endif #endif // wxUSE_CONFIG
// if didn't find it there, try to reckognise it ourselves // if didn't find it there, try to reckognise it ourselves
if ( encoding == wxFONTENCODING_SYSTEM ) if ( encoding == wxFONTENCODING_SYSTEM )
@@ -417,6 +423,10 @@ wxFontEncoding wxFontMapper::CharsetToEncoding(const wxString& charset,
if ( !cs || cs == wxT("US-ASCII") ) if ( !cs || cs == wxT("US-ASCII") )
encoding = wxFONTENCODING_DEFAULT; encoding = wxFONTENCODING_DEFAULT;
else if ( cs == wxT("UTF-7") )
encoding = wxFONTENCODING_UTF7;
else if ( cs == wxT("UTF-8") )
encoding = wxFONTENCODING_UTF8;
else if ( cs == wxT("KOI8-R") || cs == wxT("KOI8-U") ) else if ( cs == wxT("KOI8-R") || cs == wxT("KOI8-U") )
encoding = wxFONTENCODING_KOI8; encoding = wxFONTENCODING_KOI8;
else if ( cs.Left(3) == wxT("ISO") ) else if ( cs.Left(3) == wxT("ISO") )
@@ -696,7 +706,7 @@ bool wxFontMapper::GetAltForEncoding(wxFontEncoding encoding,
RestorePath(pathOld); RestorePath(pathOld);
} }
#endif #endif // wxUSE_CONFIG
return TRUE; return TRUE;
} }

View File

@@ -183,6 +183,13 @@ bool wxGetNativeFontEncoding(wxFontEncoding encoding,
} }
break; break;
case wxFONTENCODING_UTF8:
// FIXME: this is probably false, but this is how they are called on
// my system and I don't know what the standard XFLD is (VZ)
info->xregistry = wxT("iso646.1991");
info->xencoding = wxT("*");
break;
case wxFONTENCODING_KOI8: case wxFONTENCODING_KOI8:
info->xregistry = wxT("koi8"); info->xregistry = wxT("koi8");