typedef std::string u8string;

u8string To_UTF8(const std::u16string &s)
{
std::wstring_convert<std::codecvt_utf8_utf16<char16_t>, char16_t> conv;
return conv.to_bytes(s);
} u8string To_UTF8(const std::u32string &s)
{
std::wstring_convert<std::codecvt_utf8<char32_t>, char32_t> conv;
return conv.to_bytes(s);
} std::u16string To_UTF16(const u8string &s)
{
std::wstring_convert<std::codecvt_utf8_utf16<char16_t>, char16_t> conv;
return conv.from_bytes(s);
} std::u16string To_UTF16(const std::u32string &s)
{
std::wstring_convert<std::codecvt_utf16<char32_t>, char32_t> conv;
std::string bytes = conv.to_bytes(s);
return std::u16string(reinterpret_cast<const char16_t*>(bytes.c_str()), bytes.length()/sizeof(char16_t));
} std::u32string To_UTF32(const u8string &s)
{
std::wstring_convert<codecvt_utf8<char32_t>, char32_t> conv;
return conv.from_bytes(s);
} std::u32string To_UTF32(const std::u16string &s)
{
const char16_t *pData = s.c_str();
std::wstring_convert<std::codecvt_utf16<char32_t>, char32_t> conv;
return conv.from_bytes(reinterpret_cast<const char*>(pData), reinterpret_cast<const char*>(pData+s.length()));
}

最新文章

  1. FAST特征点检测features2D
  2. Elasticsearch 连接查询
  3. javaweb学习总结(十四)——JSP原理
  4. mysql自动备份数据库
  5. Android中的BroadCast静态注册与动态注册
  6. Kendo Web UI Grid里时间格式转换
  7. 【HDU1166】敌兵布阵(树状数组或线段树)
  8. CodeForces 711D Directed Roads
  9. cmd获取python返回值
  10. 08_java基础知识——方法重载
  11. html 三列布局(两列自适应,一列固定宽度)
  12. Core Graphices 设置渐变
  13. spring-mvc.xml与spring-mybatis.xml配置文件中命名空间问题
  14. OpenCV——图像的载入、显示、输出到文件和滑动条、鼠标操作
  15. PAT B1013 数素数 (20 分)
  16. opencv core组件进阶
  17. MT【180】齐次化+换元
  18. 快速打开 Mac OS X 隐藏的用户资源库文件夹
  19. Swift中的闭包(Closure)[转]
  20. 解题:SCOI 2010 序列操作

热门文章

  1. Laravel框架之Response操作
  2. Lightoj 1021【状压DP(未搞)】
  3. UnityEngine中Animator相关类的说明
  4. VC.NET 需要注意的一些问题
  5. Python decorate 函数
  6. [Xcode 实际操作]八、网络与多线程-(6)使用UIApplication对象打开地图
  7. swipe轮播插件零基础实用
  8. JToken和JObject有什么区别
  9. tagName
  10. ES5数组的方法