Subject: [Boost-bugs] [Boost C++ Libraries] #8570: boost::locale::generator::use_ansi_encoding bug: gives the unexpected result on Win7 Chinese.
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2013-05-14 01:24:50
#8570: boost::locale::generator::use_ansi_encoding bug: gives the unexpected
result on Win7 Chinese.
------------------------------+---------------------------------------------
Reporter: 316293804@⦠| Owner: artyom
Type: Bugs | Status: new
Milestone: To Be Determined | Component: locale
Version: Boost 1.53.0 | Severity: Problem
Keywords: |
------------------------------+---------------------------------------------
boost::locale::generator gen;
gen.use_ansi_encoding(true);
strLocaleName = std::use_facet<boost::locale::info>( gen("")).name();
gen.use_ansi_encoding(false);
strLocaleName = std::use_facet<boost::locale::info>( gen("")).name();
strLocaleName always "zh_CN.UTF-8",
why i can't get "zh_CN.GB2312" ?
I want to convert wstring to string.Milestone
But
string = boost::locale::conv::from_utf(wstring, gen(""));
is same with
string = boost::locale::conv::from_utf(wstring, gen("UTF-8"));
so it gives the unexpected result.
And why get_system_locale give the expected result ?
get_system_locale(true); // "zh_CN.UTF-8"
get_system_locale(false); // "zh_CN.windows-936"
So I have to use this code,
boost::locale::generator gen;
strCodePage = boost::locale::util::get_system_locale();
string = boost::locale::conv::from_utf( wstring,
std::use_facet<boost::locale::info>(gen(strCodePage)).encoding());
Is this a bug of boost::locale::generator::use_ansi_encoding ?
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/8570> Boost C++ Libraries <http://www.boost.org/> Boost provides free peer-reviewed portable C++ source libraries.
This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:13 UTC