MultiByteToWideChar 与 WideCharToMultiByte 准确理解
来源:互联网 发布:金针软件下载 编辑:程序博客网 时间:2024/05/20 02:27
记得之前已经写过有关两个API用法的文章,知道是知道含义,但是有些关键点没有把握到:
(1)多字节也有许多编码格式,其中包括Ansi和UTF8,这里容易混淆的地方是:UTF8与UNICODE,UTF是多字节集不是UNICODE
(2)UTF8为不定长存储,也就是说他存储的长度是不确定的,如:
占2个字节的:〇占3个字节的:基本等同于GBK,含21000多个汉字占4个字节的:中日韩超大字符集里面的汉字,有5万多个
(3)UNICODE中,英文和中文都是占用两个字节长度;
(4)Ansi中英文字节长度又不同,如英文一个字节,中文则是两个字节;如:
// ANSI 字符串,内容长度 7 字节
char sz[20] = "中文123";
一句话就是,Ansi和UTF8都是多字节存储的一种方式,Ansi英文一个字节中文2个字节,UTF8一个英文占用一个字节,中文占用n个不定长字节,Unicode(宽字节)则是中英文都占用2字节;!!
另外,关于API第一个参数理解,MSDN说的很模糊不容易理解,并且感觉不太正确,有歧义,特此解释如下:
MultiByteToWideChar
(1)第一个参数标志将要转化的源字符串的编码格式,也就是说该多字节是什么类型的多字节(多字节是那种编码格式),如果多字节的编码格式为Ansi则CP_ACP,如果为UTF8编码,则为CP_UTF8;
关键点还是,多字节集与Unicode宽字节编码的理解;
0 0
- MultiByteToWideChar 与 WideCharToMultiByte 准确理解
- WideCharToMultiByte与MultiByteToWideChar
- WideCharToMultiByte与MultiByteToWideChar 介绍
- WideCharToMultiByte与MultiByteToWideChar 介绍 .
- WideCharToMultiByte与MultiByteToWideChar
- WideCharToMultiByte与MultiByteToWideChar转化
- MultiByteToWideChar与WideCharToMultiByte的使用
- MultiByteToWideChar WideCharToMultiByte
- WideCharToMultiByte MultiByteToWideChar
- MultiByteToWideChar WideCharToMultiByte
- WideCharToMultiByte &MultiByteToWideChar
- MultiByteToWideChar的与WideCharToMultiByte的参数详解
- MultiByteToWideChar的与WideCharToMultiByte的参数详解
- MultiByteToWideChar的与WideCharToMultiByte的参数详解
- MultiByteToWideChar的与WideCharToMultiByte的参数详解
- MultiByteToWideChar的与WideCharToMultiByte的参数详解
- MultiByteToWideChar的与WideCharToMultiByte的参数详解
- MultiByteToWideChar的与WideCharToMultiByte的参数详解
- CF GYM 100548 The Problem to Make You Happy(2014ACM西安现场赛Problem H)
- iOS开发-手势返回失效的解决方案
- 我所理解的设计模式(C++实现)——原型模式(Prototype Pattern)
- 设计模式名称记忆法则
- 我所理解的设计模式(C++实现)——建造者模式(Builder Pattern)
- MultiByteToWideChar 与 WideCharToMultiByte 准确理解
- 我所理解的设计模式(C++实现)——抽象工厂模式(Abstract Factory Pattern)
- 6174问题和字母重排问题
- STM32F103学习笔记(七) 定时器中断 (更新中断)
- Scrapy问题
- 我所理解的设计模式(C++实现)——工厂方法模式(Factory Method Pattern)
- 我所理解的设计模式(C++实现)——单例模式(Singleton Pattern)
- iOS地图位置开发
- 我所理解的设计模式(C++实现)——桥模式(Bridge Pattern)