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

网站对网友发帖隐私做处理重庆房产信息网官网房产查询

网站对网友发帖隐私做处理,重庆房产信息网官网房产查询,申请域名 建设网站,网站开发和运行模式的搭建默认的char[]编码都是要看编译器编译选项的#xff0c;你选了ANSI那它就是ANSI#xff0c;你选了UTF8那它就是UTF8. 【注意#xff1a;经典DevC只支持ANSI编码#xff08;痛苦#xff09;#xff1b;上图是小熊猫DevC#xff0c;则有这个选项】 这一点对我的代码造成了…默认的char[]编码都是要看编译器编译选项的你选了ANSI那它就是ANSI你选了UTF8那它就是UTF8. 【注意经典DevC只支持ANSI编码痛苦上图是小熊猫DevC则有这个选项】 这一点对我的代码造成了麻烦。我就是要用utf8字符串无视编译器编码选项并输出怎么搞 先看什么是麻烦的代码 #include windows.h #include stdio.h// 将UTF-8字符串转换为宽字符串不一定是UTF-16 wchar_t* utf8_to_wstr(const char* utf8_string) {// 获取UTF-8字符串的长度int len strlen(utf8_string);// 计算所需缓冲区大小int w_size MultiByteToWideChar(CP_UTF8, 0, utf8_string, len, NULL, 0);// 分配宽字符串缓冲区wchar_t* w_string (wchar_t*)malloc((w_size 1) * sizeof(wchar_t));// 将UTF-8多字节转换为宽字符串MultiByteToWideChar(CP_UTF8, 0, utf8_string, len, w_string, w_size);w_string[w_size] L\0; // 添加NULL终止字符return w_string; }int main() {const char* utf8_string Wormwaker创作;// 转换为wchar_t*wchar_t* w_string utf8_to_wstr(utf8_string);// 使用MessageBoxW显示UTF-16字符串MessageBoxW(NULL, w_string, LMessageBoxW, MB_OK);// 释放内存free(w_string);return 0; }上述代码字符以char类型存储编码依赖编译器选项。如果为ANSI则结果为 如果为UTF-8才是正确的结果 · 试想把含类似于这样一段代码的项目例如一个软件或是一个游戏代码发给你一个朋友他一看运行出来是乱码他第一反应就是你写的有问题是你的问题。他基本不会考虑自己的编码选项有问题。你可能还要教他怎么调这将消耗你宝贵的时间。于是这段代码可能需要变得兼容一点。 随着时代的进步C针对utf编码的字符出现了更新 C11 1.添加新字符类型 char16_t 和 char32_t分别对应utf-16和utf-32编码。同时也添加了相应的std::basic_string也就是 std::u16string 和 std::u32string. 2.添加三种字符串字面量前缀u, U, 以及 u8分别对应utf-16, utf-32, utf-8编码。 注意此时还没有 char8_t ! 这时候就可以写这样的代码了 char16_t utf16c u好; char32_t utf32c U好; char utf8[] u8你好世界; char16_t utf16[] u你好世界; char32_t utf32[] U你好世界; 注意因为没有 char8_t[]所以u8字符串被存在了char[]里。 而且 C 17 到了C17才添加了对u8前缀的utf-8字符的支持也就是说下面这么写必须 有 是C17标准 char utf8c u8a; // C17标准 //char utf8c u8好;到这里已经可以实现我们想要的兼容性了不过到最后再一起说 C 20 C20终于把 char8_t 加入到了基本类型中。现如今所有u8的字符和字符串都必须用char8_t系列存储了不允许使用char了。 也就是说应该改成这样 char8_t uft8c u8a; //C20 const char8_t* pstrUtf8 u8Hello World; std::u8string sutf8 {u8Hello Universe};当然有char8_t那就肯定也一起出了std::u8string. std::basic_string变化详情 - 跳转链接→ 最后就是兼容可靠的代码的书写了 针对C17标准 #include windows.h #include stdio.h// 将UTF-8字符串转换为宽字符串不一定是UTF-16 wchar_t* utf8_to_wstr(const char* utf8_string) {// 获取UTF-8字符串的长度int len strlen(utf8_string);// 计算所需缓冲区大小int w_size MultiByteToWideChar(CP_UTF8, 0, utf8_string, len, NULL, 0);// 分配宽字符串缓冲区wchar_t* w_string (wchar_t*)malloc((w_size 1) * sizeof(wchar_t));// 将UTF-8多字节转换为宽字符串MultiByteToWideChar(CP_UTF8, 0, utf8_string, len, w_string, w_size);w_string[w_size] L\0; // 添加NULL终止字符return w_string; }int main() {const char* utf8_string u8Wormwaker创作;// 转换为wchar_t*wchar_t* w_string utf8_to_wstr(utf8_string);// 使用MessageBoxW显示UTF-16字符串MessageBoxW(NULL, w_string, LMessageBoxW, MB_OK);// 释放内存free(w_string);return 0; }就看这么一句就行了 const char* utf8_string u8Wormwaker创作;这样即使编译器默认以ANSI编码EXE也会单独把这个字符串以UTF-8编码的达到了想要的效果。 针对≥C20标准 #include windows.h #include stdio.h// 将UTF-8字符串转换为宽字符串不一定是UTF-16 wchar_t* utf8_to_wstr(const char8_t* utf8_string) {// 获取UTF-8字符串的长度int len strlen((const char*)utf8_string);// 计算所需缓冲区大小int w_size MultiByteToWideChar(CP_UTF8, 0, (const char*)utf8_string, len, NULL, 0);// 分配宽字符串缓冲区wchar_t* w_string (wchar_t*)malloc((w_size 1) * sizeof(wchar_t));// 将UTF-8多字节转换为宽字符串MultiByteToWideChar(CP_UTF8, 0, (const char*)utf8_string, len, w_string, w_size);w_string[w_size] L\0; // 添加NULL终止字符return w_string; }int main() {const char8_t* utf8_string u8Wormwaker创作;// 转换为wchar_t*wchar_t* w_string utf8_to_wstr(utf8_string);// 使用MessageBoxW显示UTF-16字符串MessageBoxW(NULL, w_string, LMessageBoxW, MB_OK);// 释放内存free(w_string);return 0; }要注意的是 1. const char8_t* utf8_string u8Wormwaker创作;2.在所有const char* 或LPCSTR的参数处都要把const char8_t* 强转成const char*. 如果你的编译器支持C20标准建议就用这第二种。毕竟在未来的标准下都得这么写。 完美解决
http://www.zqtcl.cn/news/386572/

相关文章:

  • 舟山建设管理网站手表交易网站
  • 如何电话推销客户做网站沉浸式展厅搭建商
  • 重庆网站建设开发e福州官方网站
  • 网站怎么可以被收录广州网站建设全包
  • 网站备案期间如何采购需求网站建设
  • 东莞seo网站优化运营南通网站排名外包
  • 新能源网站建设唐山专业网站建设公司
  • 石基网站建设临沂网站优化哪家好
  • 用node.js可以做网站吗上海做网站 公司有哪些
  • 淄博网站建设详细策划一个域名解析多个网站
  • 无锡网站建设首选捷搜网站优化大赛
  • 部门网站建设多少钱百度关键词挖掘查询工具
  • 做游戏直播那个网站asp做网站教程
  • 网站建设小程序开发情侣头像制作素材图片
  • spoc课程网站建设专业彩票网站建设
  • 创建网站需要注意什么忻州市城乡建设管理局网站
  • 万江做网站wordpress 动静
  • 北京自助模板建站遂宁企业网络推广方案
  • 湖南建设科技节能协会网站武夷山景区网站建设特点
  • 那些网站建设的好百度搜索风云排行榜
  • 网站开发 模板 c沈阳市建设工程质量检测中心网站
  • 企业网站设计专业好吗做钓鱼网站要具备什么
  • 广西备案工信部网站用asp.net做后台网站
  • 静态网站漏洞wordpress 外卖
  • 暗网做网站温州做网络推广的公司
  • 网站描述 修改上海火迎网络推广运营优化
  • 黄石网站建设哪家专业做个网站费用
  • 免费做的网站怎么设置域名解析宁夏百度seo
  • 化妆品产品的自建网站有哪些阿里云cdn wordpress错位
  • 增加网站流量网站新闻字体