Author: Ilya Bobyr Date: Mon Sep 17 09:44:50 2012 -0700 [B] Boost.PropertyTree: Correctly read UTF-8 Boost.PropertyTree has a fix in version 1.45 to write narrow characters, in case char is signed, with highest bit set correctly. This this a similar fix for the read side. --- a/boost/property_tree/detail/json_parser_read.hpp +++ b/boost/property_tree/detail/json_parser_read.hpp @@ -145,7 +145,8 @@ namespace boost { namespace property_tree { namespace json_parser a_unicode(context &c): c(c) { } void operator()(unsigned long u) const { - u = (std::min)(u, static_cast((std::numeric_limits::max)())); + typedef typename make_unsigned::type UCh; + u = (std::min)(u, static_cast((std::numeric_limits::max)())); c.string += Ch(u); } };