Opened 9 years ago
#8836 new Bugs
boost::property_tree and BOM
Reported by: | Owned by: | Sebastian Redl | |
---|---|---|---|
Milestone: | To Be Determined | Component: | property_tree |
Version: | Boost 1.54.0 | Severity: | Problem |
Keywords: | property_tree | Cc: |
Description
boost::property_tree::ptree can't handle files with BOM (at least for UTF-8).
#include <boost/filesystem.hpp> #include <boost/property_tree/ini_parser.hpp> #include <cstdlib> #include <iostream> int main() { try { boost::filesystem::path path("helper.ini"); boost::property_tree::ptree pt; boost::property_tree::read_ini(path.string(), pt); const std::string foo = pt.get<std::string>("foo"); std::cout << foo << '\n'; } catch (const boost::property_tree::ini_parser_error& e) { std::cerr << "An error occurred while reading config file: " << e.what() << '\n'; return EXIT_FAILURE; } catch (const boost::property_tree::ptree_bad_data& e) { std::cerr << "An error occurred while getting options from config file: " << e.what() << '\n'; return EXIT_FAILURE; } catch (const boost::property_tree::ptree_bad_path& e) { std::cerr << "An error occurred while getting options from config file: " << e.what() << '\n'; return EXIT_FAILURE; } catch (...) { std::cerr << "Unknown error \n"; return EXIT_FAILURE; } }
helper.ini
foo=str
Output
An error occurred while getting options from config file: No such node (foo)
Note:
See TracTickets
for help on using tickets.