For a variety of reasons, I think it is time to convert CB to compile with _UNICODE enabled.
- wxWidgets has deprecated ANSI builds, and doesn't even provide IDE
.vcproj files for ANSI
- users might actually want to be able to reliably use non-English characters
- Windows is Unicode internally
As stated in #71 (comment), for portability/consistency to Linux/Mac, we probably want to use std::string, but assume utf-8 content in it. However, we will need to use utf-8/wchar_t conversion helpers to make calls to Windows Unicode functions. wxWidgets provides extensive helpers, but wxWidgets effectively requires _UNICODE, and I would prefer not to try to simultaneously add wxWidgets and enable _UNICODE, so I think we will need to provide our own (temporary?) helpers.
Note that CString + _UNICODE means wchar_t. Therefore, assuming we want utf-8, I think a prerequisite of _UNICODE is replacing CString with std::string.
Also note that I am not talking about true internationalization; just a single step down that path.
For a variety of reasons, I think it is time to convert CB to compile with
_UNICODEenabled..vcprojfiles for ANSIAs stated in #71 (comment), for portability/consistency to Linux/Mac, we probably want to use
std::string, but assume utf-8 content in it. However, we will need to use utf-8/wchar_tconversion helpers to make calls to Windows Unicode functions. wxWidgets provides extensive helpers, but wxWidgets effectively requires_UNICODE, and I would prefer not to try to simultaneously add wxWidgets and enable_UNICODE, so I think we will need to provide our own (temporary?) helpers.Note that
CString+_UNICODEmeanswchar_t. Therefore, assuming we want utf-8, I think a prerequisite of_UNICODEis replacingCStringwithstd::string.Also note that I am not talking about true internationalization; just a single step down that path.