
program_options handle wide character really stupid way. It accept wchar_t. However, it convert it char for internal storing. The conversion is done by assuming each wchar_t object's integral value represents a ASCII code point. For output, it convert back char to wchar_t in same way. What I want for program_options is, accept wchar_t string, store it as is, then return it as is. Because program_options internally stores string in char without properly handling character encoding, It gives me completely broken result. On Sat, Apr 16, 2011 at 1:36 AM, Joshua Boyce <raptorfactor@raptorfactor.com> wrote:
Sorry to go on a tangent here, but what exactly is the objection to program_options?
On Sat, Apr 16, 2011 at 1:05 AM, Ryou Ezoe <boostcpp@gmail.com> wrote:
Why ASCII? ASCII is not portable. Only portable characters are basic source character set. You can't use $, @ and ` in portable code. If you drop support of pre C++0x compiler, you can use u8, u and U encoding prefix. But still, char can be UTF-8 or any other encoding.
If this library accept char const * and std::string, then it will receive null terminated binary string that can be any encoding.
Your idea of "Use ASCII in order to localize your software" doesn't work. This library will be ignored just like program_options.
-- Ryou Ezoe _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
-- Ryou Ezoe