It's proposed to migrate away from the wchar_t character type to a char character type with UTF-8 encoded text. The wchar_t type was chosen initially because it was the natural choice on Windows platforms, but with UTF-8 encoding being the standard on most other systems, the fact that wchar_t uses UTF-32 encoding on Linux, and most significantly the fact areas of the C++ standard library only support wchar_t data in places through Microsoft extensions, such as the open method of fstream objects, UTF-8 encoding seems a preferable encoding to use in our platform. This will require explicit text conversion to UTF-16 where required, ideally with direct calls to the "W" Win32 API functions, which should be able to be achieved without very much work.
It's proposed to migrate away from the wchar_t character type to a char character type with UTF-8 encoded text. The wchar_t type was chosen initially because it was the natural choice on Windows platforms, but with UTF-8 encoding being the standard on most other systems, the fact that wchar_t uses UTF-32 encoding on Linux, and most significantly the fact areas of the C++ standard library only support wchar_t data in places through Microsoft extensions, such as the open method of fstream objects, UTF-8 encoding seems a preferable encoding to use in our platform. This will require explicit text conversion to UTF-16 where required, ideally with direct calls to the "W" Win32 API functions, which should be able to be achieved without very much work.