xref: /aosp_15_r20/external/grpc-grpc/third_party/utf8_range/boost.cpp (revision cc02d7e222339f7a4f6ba5f422e6413f4bd931f2)
1*cc02d7e2SAndroid Build Coastguard Worker #include <boost/locale.hpp>
2*cc02d7e2SAndroid Build Coastguard Worker 
3*cc02d7e2SAndroid Build Coastguard Worker using namespace std;
4*cc02d7e2SAndroid Build Coastguard Worker 
5*cc02d7e2SAndroid Build Coastguard Worker /* Return 0 on sucess, -1 on error */
utf8_boost(const unsigned char * data,int len)6*cc02d7e2SAndroid Build Coastguard Worker extern "C" int utf8_boost(const unsigned char* data, int len) {
7*cc02d7e2SAndroid Build Coastguard Worker   try {
8*cc02d7e2SAndroid Build Coastguard Worker     boost::locale::conv::utf_to_utf<char>(data, data + len,
9*cc02d7e2SAndroid Build Coastguard Worker                                           boost::locale::conv::stop);
10*cc02d7e2SAndroid Build Coastguard Worker   } catch (const boost::locale::conv::conversion_error& ex) {
11*cc02d7e2SAndroid Build Coastguard Worker     return -1;
12*cc02d7e2SAndroid Build Coastguard Worker   }
13*cc02d7e2SAndroid Build Coastguard Worker 
14*cc02d7e2SAndroid Build Coastguard Worker   return 0;
15*cc02d7e2SAndroid Build Coastguard Worker }
16