当前位置: 首页 > news >正文

中国建设部官方网站资格证查询济南百度快照推广公司

中国建设部官方网站资格证查询,济南百度快照推广公司,品牌建设推广,网站建设的风险分析一、C11对Unicode的支持 在C98中#xff0c;引入wchar_t对Unicode支持#xff0c;但是后来由于不同平台下wchar_t的宽度并不相同(8,16,32位)#xff0c;导致可移植性受到影响。因此从C11开始引入了char16_t、char32_t以及原有的char#xff0c;分别存储utf16#xff0c;u…一、C11对Unicode的支持 在C98中引入wchar_t对Unicode支持但是后来由于不同平台下wchar_t的宽度并不相同(8,16,32位)导致可移植性受到影响。因此从C11开始引入了char16_t、char32_t以及原有的char分别存储utf16utf32和utf8编码的数据。 此外还定义了字符串常量的前缀 u8表示以utf8编码u表示utf16编码U表示utf32编码 以上三种再加上wchar_t格式的L以及不带前缀的字符串C11则包含了5种字符串常量的前缀。 通常情况下对于连续的字符串常量C会要求编译器将其连起来比如a b和ab没有区别。 此外对于多个连续声明的字符串常量只要有一个有前缀则编译器会将这些连续的字符串常量都以此前缀处理。(实际上vs2017并不允许) 此外C11还支持\u十六进制码位表示unicode字符。 std::string str \u4F60\u597d; //中文字符你好 而想要正确显示一个字符(不乱码)要求输入编码格式、文件存储编码格式编译时选择的编码格式、以及输出显示编码格式四者一致才能正确否则都会出现乱码的现象。 二、对于Unicode库的支持 1.单码位转换 size_t mbrtoc16(char16_t * pc16, const char * s, size_t n, mbstate_t * ps);size_t c16rtomb(char * s, char16_t c16, mbstate _t * ps);size_t mbrtoc32(char32_t * pc32, const char * s, size_t n, mbstate_t * ps);size_t c32rtomb(char * s, char32_t c32, mbstate_t * ps); mb表示multiple bytes这四个函数都表示单码位的转换。 #include climits #include clocale #include cuchar #include iomanip #include iostream #include stringint main() {std::setlocale(LC_ALL, en_US.utf8);std::u16string strv uzß水; // or z\u00df\u6c34\U0001F34Cstd::cout Processing strv.size() UTF-16 code units: [ ;for (char16_t c : strv)std::cout std::showbase std::hex static_castint(c) ;std::cout ]\n;std::mbstate_t state{};char out[MB_LEN_MAX]{};for (char16_t c : strv){std::size_t rc std::c16rtomb(out, c, state);std::cout static_castint(c) converted to [ ;if (rc ! (std::size_t) - 1)for (unsigned char c8 : std::string{ out, rc })std::cout c8 ;std::cout ]\n;} } #include clocale #include cstring #include cuchar #include cwchar #include iomanip #include iostreamint main() {std::setlocale(LC_ALL, en_US.utf8);std::string str z\u00df\u6c34\U0001F34C; // or u8zß水std::cout Processing str.size() bytes: [ std::showbase;for (unsigned char c : str)std::cout std::hex c ;std::cout ]\n;std::mbstate_t state{}; // zero-initialized to initial statechar16_t c16;const char *ptr str[0], *end str[0] str.size();while (std::size_t rc std::mbrtoc16(c16, ptr, end - ptr 1, state)){std::cout Next UTF-16 char: std::hex static_castint(c16) obtained from ;if (rc (std::size_t) - 3)std::cout earlier surrogate pair\n;else if (rc (std::size_t) - 2)break;else if (rc (std::size_t) - 1)break;else{std::cout std::dec rc bytes [ ;for (std::size_t n 0; n rc; n)std::cout std::hex static_castunsigned char(ptr[n]) ;std::cout ]\n;ptr rc;}} } 2.多码位转换 std::codecvtchar, char, std::mbstate_t // 完成多字节与char之间的转换std::codecvtchar16_t, char, std::mbstate_t // 完成UTF-16与UTF-8间的转换std::codecvtchar32_t, char, std::mbstate_t // 完成UTF-32与UTF-8间的转换std::codecvtwchar_t, char, std::mbstate_t // 完成多字节与wchar_t之间的转换 以及派生codecvt_utf8、codecvt_utf16、codecvt_utf8_utf16等可以用于字符串转换的模板类。这些模板类配合C11定义的wstring_convert模板可以进行一些不同字符串的转换。 三、原生字符串字面量支持 C11开始支持原生字符串字面量语法是R(string). #include iostreamint main() {std::cout 12345\t\n890 std::endl;std::cout R(12345\t\n890) std::endl; } 输出 12345 890 12345\t\n890 而原生字符串字面值也可以添加前缀uu8U等表示字符编码内容 std::cout uR(12345\t\n890) std::endl;std::cout UR(12345\t\n890) std::endl;std::cout u8R(12345\t\n890) std::endl; 输出 006DEBE4 006DEB3C 12345\t\n890
http://www.zqtcl.cn/news/788205/

相关文章:

  • aspcms企业网站模板互联网推广模式有哪些
  • 高端 网站设计公司怎样开通微信公众号平台
  • 陕西省建设监理协会网站证书城乡建设管理局网站
  • 网站建设价目表建设商城网站报价
  • 天河企业网站建设杭州网站开发与设计
  • 涂料厂做网站有用吗廊坊关键词快速排名
  • 免费编程网站个人博客网站如何做SEO
  • 动漫做美食的视频网站佛山网站建设公司88
  • 衡水移动网站建设网站定制论坛
  • 装修网站模板源码网站上传不了
  • 南昌企业网站开发宁波seo怎么做推广渠道
  • 查找公司信息的网站小蝌蚪视频网络科技有限公司
  • 爆破wordpress密码河北seo基础入门教程
  • 推广网站报价公司logo设计效果图
  • 西部数据网站管理助手做如美团式网站要多少钱
  • 云主机网站如何备份合肥网页设计就业
  • 视频网站视频预览怎么做西部数码助手网站后台管理
  • 有哪些网站建设工作室杭州房价
  • 广告去哪个网站做上海最大的外贸公司
  • 二手车网站开发过程专业的大连网站建设
  • 北京加盟网站建设宝石汇网站
  • 网站本地建设seo排名赚app多久了
  • 邢台手机网站建设信息超链接html代码
  • wordpress 代码模块昆明seo和网络推广
  • 匈牙利网站后缀沛县做网站xlec
  • 企业网站建设的成本国内做网站建设最好的公司是
  • 威海做企业网站云南建筑工程网
  • 旅游网站建设报价网站空间管理信息
  • app展示网站手机端app开发公司
  • 在湖南建设人力资源网站wordpress widget