300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > boost库学习随记五 Boost.Locale 之字符转换 gbk utf8 big5 string wstring等

boost库学习随记五 Boost.Locale 之字符转换 gbk utf8 big5 string wstring等

时间:2021-09-22 21:54:25

相关推荐

boost库学习随记五 Boost.Locale 之字符转换 gbk utf8 big5 string wstring等

Boost.Locale是一个库,它提供高质量的本地化的设施在C + +的方式。它最初是设计的一部分CppCMS- C + +的Web框架的项目,然后促成了提升。

Boost.Locale提供强大的工具,跨平台的本地化软件开发 - 这会谈到用户在其语言的软件。

提供的功能

正确的大小写转换,大小写和规范化。整理(排序),其中包括4 Unicode排序规则层面的支持。日期,时间,时区和日历操作,格式化和分析,包括对日历比公历其他透明的支持。边界分析字,词,句和换行符。数字格式,拼写和语法分析。货币格式和解析。强大的邮件格式(字符串翻译),包括多种格式,使用GNU目录的支持。字符集转换。8位字符透明支持集,如拉丁文支持的charwchar_t的对C + +0 x的实验性支持char16_tchar32_t字符串和数据流。

Boost.Locale提高和统一了标准库的API,它变得非常有用和方便开发跨平台的和“跨文化”软件的方式。

相关字符集转换函数功能摘要

Convert a text in range [begin,end) toto_encodingfromfrom_encoding

Convert atexttoto_encodingfromfrom_encoding

Convert atexttoto_encodingfromfrom_encoding

template<typename CharType >

convert UTF text in range [begin,end) to a text encoded withcharsetaccording to policyhow

template<typename CharType >

convert UTF text in range [begin,end) to a text encoded according to localelocaccording to policyhow

Note:throws std::bad_cast if the loc does not haveinfofacet installedtemplate<typename CharType >

Convert atextfromcharsetto UTF string

template<typename CharType >

Convert atextfrom UTF tocharset

template<typename CharType >

Convert atextin UTF to locale encoding given byloc

Note:throws std::bad_cast if the loc does not haveinfofacet installedtemplate<typename CharType >

Convert atextin UTF to locale encoding given byloc

Note:throws std::bad_cast if the loc does not haveinfofacet installedtemplate<typename CharType >

convert string to UTF string from text in range [begin,end) encoded withcharsetaccording to policyhow

template<typename CharType >

convert string to UTF string from text in range [begin,end) encoded according to localelocaccording to policyhow

Note:throws std::bad_cast if the loc does not haveinfofacet installedtemplate<typename CharType >

convert a stringtextencoded withcharsetto UTF string

template<typename CharType >

Convert atextfromcharsetto UTF string

template<typename CharType >

Convert atextin locale encoding given bylocto UTF

Note:throws std::bad_cast if the loc does not haveinfofacet installedtemplate<typename CharType >

Convert atextin locale encoding given bylocto UTF

Note:throws std::bad_cast if the loc does not haveinfofacet installedtemplate<typename CharOut , typename CharIn >

Convert a Unicode text in range [begin,end) to other Unicode encoding

template<typename CharOut , typename CharIn >

Convert a Unicode NUL terminated stringstrother Unicode encoding

template<typename CharOut , typename CharIn >

Convert a Unicode stringstrother Unicode encoding

简单示例:

1、between把 source 这个字串从BIG5 转换到 UTF-8:

string source = "BIG5字符串";string s = boost::locale::conv::between( source, "UTF-8", "BIG5" );

2、to_utf可以输出 string ,也可以输出成 wstring。像下面的例子,就是把 sSource 这个 BIG-5 编码的字串,依序转换成 wstring 和 string 的字串。

string sSource = "BIG-5字符串";wstring ws = boost::locale::conv::to_utf<wchar_t>( sSource, "BIG5" );string ss = boost::locale::conv::to_utf<char>( sSource, "BIG5" );

3、from_utf 是把 UTF 字串(string 或wstring)、转换为特定编码的字串用的,他可以转换string 或wstring 的字串,但是输出一定是string。

下面的例子,就是把 sSource 和 wSource这两个 UTF 字串,都转换成 BIG-5 的 string 字串。

string sSource = "字符串";wstring wSource = L"...";string ss1 = boost::locale::conv::from_utf( wSource, "BIG5" );string ss2 = boost::locale::conv::from_utf( sSource, "BIG5" );

4、utf_to_utf的目的,是在 UTF 的 string 字串和 wstring 字串之间做转换,下面的例子,就是把类型是 string 的 sSource 转换成 wstring、并把类型是 wstring 的 wSource 转换成 string

string sSource = "...";wstring wSource = L"...";wstring wStr = boost::locale::conv::utf_to_utf<wchar_t>( sSource );string sStr = boost::locale::conv::utf_to_utf<char>( wSource );

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。