1.1、wchar_t、char区别

  ANSI:char,可以用strcat()、strcpy()、strlen()等str开头的函数处理char*字符串;

  UNICODE:wchar_t是Unicode字符的数据类型,是我们常说的宽字符;可以用wcscat()、wcscpy()、wcslen(0等wcs开头的函数处理字符串,使用时需要在前面加一个L或者使用_T()。wchar_t的实际定义是:

typedef unsigned short wchar_t;
typedef wchar_t WCHAR;//实际WCHAR与wchar_t是相同的。

  对TCHAR而言,在unicode字符集下,typedef wchar_t TCHAR;  否则是typedef char TCHAR;

  char转换为wchar_t,方法一:使用TEXT();

  方法二:

wchar_t* c2w(const char* str)
{
int length = strlen(str);
wchar_t* wstr = (wchar_t*)malloc(sizeof(wchar_t)*length);
memset(wstr,0,length*sizeof (wchar_t));
MultiByteToWideChar(CP_ACP,0,str,strlen(str),wstr,length);
return wstr;
}

  但是一般情况下程序只会用一种字符集,这种相互转换感觉也没什么意义...?

1.2、 ANSI、Unicode之间的转换

方法一:

  使用MultiByteToWideChar将ANSI字符转换成Unicode字符,使用WideCharToMultiByte将Unicode字符转换成ANSI字符。

方法二:

  使用_T将ANSI转换成一般类型字符串,使用L将ANSI转换成Unicode字符串。

方法三:

  使用ATL的转换宏和类,ATL宏各字符的含义

  ATL3.0   C表示常量,2表示to,EX表示开辟一定大小的缓冲,sourceType和DestinationType可以是A/T/W/OLE,分别表示ANSI/Unicode/一般类型/OLE字符串;

  ATL7.0   为了与ATL3.0区别,第一个C表示类,第二个C表示常量...

比如CA2CT表示将ANSI转换成Unicode字符串常量。

附录:常用的字符串以及指针的类型定义

类型 MBCS bulids Unicode builds
WCHAR wchar_t wchar_t
LPSTR char* char*
LPCSTR const char* const char*
LPWSTR wchar_t* wchar_t*
LPCWSTR wchar_t* wchar_t*
TCHAR char wchar_t
LPTSTR TCHAR* TCHAR*
LPCTSTR const TCHAR* const TCHAR*

ANSI/Unicode字符串简单介绍的更多相关文章

  1. java字符串简单介绍

    String:String对象初始化之后不可变线程安全简单的字符串操作使用String效率更高 StringBuffer:StringBuffer对象初始化之后可改变线程安全频繁的字符串操作可以使用S ...

  2. 原生ajax接收json字符串(简单介绍)

    什么是json? JSON的全称是 Javascript Object Notation(javascript对象表示法),是基于javascript对象字面量,如果单从眼睛看,JSON里的数据是被保 ...

  3. python 基础-----数字,字符串,if while 循环 数据类型的转换简单介绍

    一.第一个python小程序 首先我们要知道python创立的初衷是:Python崇尚优美.清晰.简单. 所以python比起其他的语言需要的工作量少了一半都不止,比如和现在一直霸占语言排行榜  榜首 ...

  4. Ansi 与 Unicode 字符串类型的互相转换

    WideCharToMultiByte 实现宽字节转换到窄字节MultiByteToWideChar 实现窄字节转换到宽字节 WideCharToMultiByte 的代码页用来标记与新转换的字符串相 ...

  5. 字符串处理 - ANSI - Unicode - UTF8 转换

    #include <stdio.h> #include <windows.h> #include <locale.h> #define BUFF_SIZE 1024 ...

  6. JAVA 文件编译执行与虚拟机(JVM)简单介绍

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytpo3 java程序的内存分配 JAVA 文件编译执行与虚拟机(JVM)介绍 ...

  7. ZooKeeper学习第一期---Zookeeper简单介绍

    一.分布式协调技术 在给大家介绍ZooKeeper之前先来给大家介绍一种技术——分布式协调技术.那么什么是分布式协调技术?那么我来告诉大家,其实分布式协调技术主要用来解决分布式环境当中多个进程之间的同 ...

  8. 【Zookeeper系列】Zookeeper简单介绍(转)

    原文链接:https://www.cnblogs.com/sunddenly/p/4033574.html 一.分布式协调技术 在给大家介绍ZooKeeper之前先来给大家介绍一种技术——分布式协调技 ...

  9. 4、Zookeeper简单介绍

    一.分布式协调技术 在给大家介绍ZooKeeper之前先来给大家介绍一种技术——分布式协调技术.那么什么是分布式协调技术?那么我来告诉大家,其实分布式协调技术 主要用来解决分布式环境当中多个进程之间的 ...

  10. [转]ZooKeeper学习第一期---Zookeeper简单介绍

    ZooKeeper学习第一期---Zookeeper简单介绍 http://www.cnblogs.com/sunddenly/p/4033574.html 一.分布式协调技术 在给大家介绍ZooKe ...

随机推荐

  1. MRS_MounRiver安装与驱动相关问题汇总

    解决问题如下: MounRiver下载与安装 若MounRiver某些功能不全或插件没安装 MounRiver下载与安装 MRS官网下载:http://www.mounriver.com/downlo ...

  2. AR Engine毫秒级平面检测,带来更准确的呈现效果

    近年来,AR版块成为时下大热,这是一种将现实环境中不存在的虚拟物体融合到真实环境里的技术,用户借助显示设备可以拥有真实的感官体验.AR的应用场景十分广泛,涉及娱乐.社交.广告.购物.教育等领域:AR可 ...

  3. MySQL 如何实现表的创建、复制、修改与删除

    MySQL中如何利用代码完成表的创建.复制.修改和删除?下面总结了在创建表的时候各字段的含义以及注意哪些问题,复制和修改及删除常用的代码. 一.创建表 --创建新表,如果存在则覆盖 drop tabl ...

  4. prometheus+grafana监控体验

    先上pom依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId> ...

  5. BST 插入节点传新版本(原痛恨JavaScript每一天 __ 没有指针)

    2023年2月2日更新 perform代码上传到GitHub了,新方法比老方法慢,不建议在生产环境使用 GitHub地址:https://github.com/Dou-fugan/webDemo/tr ...

  6. Docker安装SqlServer、Mysql、MariaDB

    一.Docker 安装SqlServer 说明 1. 拉取镜像 docker pull mcr.microsoft.com/mssql/server:2019-latest 2.运行 docker r ...

  7. [java安全基础 01]SQL+反序列化

    tomcat Servlet 什么是servlet Java Servlet是运行在 Web 服务器或应用服务器上的程序.它是作为来自Web浏览器或其他HTTP客户端的请求和HTTP服务器上的数据库或 ...

  8. HDMI转USB视频采集卡(ACASIS 1080P高清视频采集卡)--九五小庞

    ACASIS阿卡西斯是深圳市菲德越科技有限公司旗下数码科技品牌.菲德越是2008年成立的一家专注于采集卡.硬盘盒.集线器等专业3C配件产品,集研发.设计.生产.销售于一体的高新科技公司,我们公司以向客 ...

  9. OpenSCAD:一款用于创建实体3D CAD对象的软件

    推荐:使用 NSDT场景设计器 快速搭建 3D场景. 原文链接:https://www.mvrlink.com/openscad/ OpenSCAD是一个用于创建实体3D CAD对象的软件.它是免费软 ...

  10. PostgreSQL数据库切割和组合字段函数

    Postgresql里面内置了很多的实用函数,下面介绍下组合和切割函数一.组合函数1.concata.语法介绍 concat(str "any" [, str "any& ...