ANSI字符集  所支持的就是多字节的也叫窄字节,类型来说就对应char类型。
Unicode字符集 也叫宽字符集 所支持的就是宽字符集,从类型上来说就是 wchar_t类型。
gb2312是中国的编码,Big5是中国香港和中国台湾的编码。
为什么有时我们所做的程序会出现乱码呢?

首先编码就是一个编码对应一个字符,gb2312 用2个字节表示所有的汉字,也就可能从0开始表示2^15个中文所用到的字符。
Big5也是用两个字节表示繁体字,也有可能是从0x0000 到0xFFFF区间表示繁体字。
因为编码的人只想编排自己地区所使用的字符,所以,在每个字节进行与字符对应的时候存在语言混淆的可能。

比如一个字简体的”国“和繁体的”國“,在gb2312中”国“字节编码是397A,在Big-5”國“是B0EA,那么这个简体的国如果不进行编码转换是无法从397A直接变成B0EA的,这个397A直接去对应Big-5的编码,就会是除了”國“字以外的其他繁体字了。那么gb2312的”国“用Big-5码显示出来就不是国对应的繁体字了。

所以就有了Unicode编码,它也叫统一编码。把全世界的语言字符拉通一一对应的编码。拉通就好比把全世界的字符通通从1开始数数 数一遍,并按数出来的数作为它的编码,这样就做到全世界的字符都是一 一对应的了。
那么繁体字,简体字,法文,俄文就不会有重叠的区域。这个时候“国”在unicode是 56EF表示,“國”是570B表示,如果生产者和用户都使用unicode编码,那么“国”和“國”就是因为使用的同一编码,生产者用unicode的56EF代表’国‘,用户用unicode翻译过来就是“国”;生产者用570B代表’國‘,用户用unicode翻译过来还是“國”,这就能编码和字符在生产者和用户上对应不变了。

在MFC中,ANSI字符集  所支持的就是多字节的也叫窄字节,类型来说就对应char类型。
Unicode字符集 也叫宽字符集 所支持的就是宽字符集,从类型上来说就是 wchar_t类型。
为了方便在不同的字符集上转换,就有了一种TCHAR类型,TCHAR能随着窄宽字节的变化自动变化。CString也是这样的。我们在定义CString的时候就需要使用的宏_T(“值”)或者TEXT(“值”)来表示文字了,这两个宏也是随编码不同,自动把里面的值转换成对应的编码。

区分一下 LPSTR(char*),LPCSTR(const char*)
     LPWSTR(wchar_t*),LPCWSTR(const wchar_t*)
     LPTSTR(TCHAR*),LPCTSTR(const TCHAR*)

 它们之间的转换转换:
https://blog.csdn.net/u012175637/article/details/80632687

MFC之多字节和宽字节的总结的更多相关文章

  1. windows下多字节和宽字节转换

    先简单说下什么是多字节和宽字节. 多字节是指使用多个字节(1-3)表示一个字符.比如gbk使用英文占一个字节,中文占2个,这个就是多字节了.utf-8是使用1-3个字节表示字符.还有big5等等. 宽 ...

  2. A2W和W2A :很好的多字节和宽字节字符串的转换宏

    以前看<Window核心编程>,感觉多字节和宽字节之间还比较麻烦的,至少MultiByteToWideChar函数和WideCharToMultiByte函数有足够多的参数的意义让我们去理 ...

  3. 关于多字节、宽字节、WideCharToMultiByte和MultiByteToWideChar函数的详解

    所谓的短字符,就是用8bit来表示的字符,典型的应用是ASCII码. 而宽字符,顾名思义,就是用16bit表示的字符,典型的有UNICODE. **************************** ...

  4. 使用Unicode(宽字节字符集);多字节字符集中定义宽字节变量

    2012-03-25 14:54 (分类:计算机程序) 2.2 宽字符和C 宽字符不一定是Unicode.Unicode是宽字符集的一种.然而,因为本书的焦点是Windows而不是C执行的理论,所以书 ...

  5. PHP函数 addslashes() 和 mysql_real_escape_string() 的区别 && SQL宽字节,绕过单引号注入攻击

    首先:不要使用 mysql_escape_string(),它已被弃用,请使用 mysql_real_escape_string() 代替它. mysql_real_escape_string() 和 ...

  6. 【PHP代码审计】 那些年我们一起挖掘SQL注入 - 5.全局防护Bypass之宽字节注入

    0x01 背景 首先我们了解下宽字节注入,宽字节注入源于程序员设置MySQL连接时错误配置为:set character_set_client=gbk,这样配置会引发编码转换从而导致的注入漏洞.具体原 ...

  7. Mysql宽字节注入(转)

    尽管现在呼吁所有的程序都使用unicode编码,所有的网站都使用utf-8编码,来一个统一的国际规范.但仍然有很多,包括国内及国外(特别是非英语国家)的一些cms,仍然使用着自己国家的一套编码,比如g ...

  8. 一文读懂所有的编码方式(UTF-8、GBK、Unicode、宽字节...)

    编码方式就分两类:ANSI编码.Unicode编码.这两类编码都兼容ASC码. ------------------------------------------------------------ ...

  9. sqli-libs(32-37(宽字节注入)关)

    补充知识:宽字节注入 定义:GB2312.GBK.GB18030.BIG5.Shift_JIS等这些都是常说的宽字节,实际上只有两字节.宽字节带来的安全问题主要是吃ASCII字符(一字节)的现象,即将 ...

  10. SQL注入--宽字节注入

    PHP测试代码: <?php // 面向对象写法 $id=addslashes($_GET[‘id’]); //获取id并转义预定义字符 // /$id=$_GET[‘id’]; $mysqli ...

随机推荐

  1. Native Rawfile开发指导

      场景介绍 开发者可以通过本指导了解在HarmonyOS应用中,如何使用Native Rawfile接口操作Rawfile目录和文件.功能包括遍历.打开.搜索.读取和关闭Rawfile. 接口说明 ...

  2. WPS HW 漏洞 学习

    复现过程 2023 年 HW 出现 WPS 0day POC 影响版本: WPS Office 2023个人版<11.1.0.15120 WPS Office 2019企业版<11.8.2 ...

  3. 动态规划(五)——坐标dp

    传纸条 题目描述 小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题.一次素质拓展活动中,班上同学安排做成一个m行n列的矩阵, 而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法直接交谈了 ...

  4. Java:得到指定年份、月份、周次的最后一天

    使用Java的工具类Calendar 通过Calendar可以进行很多的日期操作 /** * 得到指定年份的最后一天 * @param year */ public static void getLa ...

  5. 离线语音识别,vosk,离线流式实时静音噪声监测,支持多语言开发python c++ c# java等

    #!/usr/bin/env python3 from vosk import Model, KaldiRecognizer, SetLogLevel import sys import os imp ...

  6. Spark3.0 Standalone模式部署

    之前介绍过Spark 1.6版本的部署,现在最新版本的spark为3.0.1并且已经完全兼容hadoop 3.x,同样仍然支持RDD与DataFrame两套API,这篇文章就主要介绍一下基于Hadoo ...

  7. 力扣482(java)-密钥格式化(简单)

    题目: 给定一个许可密钥字符串 s,仅由字母.数字字符和破折号组成.字符串由 n 个破折号分成 n + 1 组.你也会得到一个整数 k . 我们想要重新格式化字符串 s,使每一组包含 k 个字符,除了 ...

  8. 暑期集训 Day11 —— 模拟赛复盘

    ${\color{Green} \mathrm{Problem\ 1 :Subarray }} $ 签到失败... 直接二进制分组,找出所有二进制位=0 的方法. 死因: 二进制分组没想出来... $ ...

  9. 阿里云 VPC 内网性能测试最佳实践

    ​简介:本文介绍了在阿里云 VPC 内网执行性能测试的方法.相较于传统的公网性能测试,VPC 内网性能测试完全在客户 VPC 环境进行,无需暴露服务到公网,安全性更高,灵活性更强. 作者:风起 背景 ...

  10. EDA 事件驱动架构与 EventBridge 二三事

    ​简介: 事件驱动型架构 (EDA) 方兴未艾,作为一种 Serverless 化的应用概念对云原生架构具有着深远影响.当我们讨论到一个具体架构时,首当其冲的是它的发展是否具有技术先进性.这里从我们熟 ...