字符编码

两种字符类型 char  / wchar_t

TCHAR是一个宏

多字节编码时:替换为char

Unicode编码时:替换为wchar_t

l      不能使用strcpy这样的ANSI C字符串函数处理wchar_t字符串,须使用wcs前缀的函数。

l      为了使编译器识别Unicode字符串,在字符串前面加L前缀。

wchar_t *szTest = L”This is a Unicode string”;

l      使用TCHAR: 不应该使用ANSI的strxxx和Unicode的wcsxxx, 须使用Tchar.h中定义的_tcsxxx,并用_TEXT代替L。

l

函数

_tcslwr 将字符串转化成小写字母(VS2005+WinCE6.3)

lstrcpy 复制(VS2005+WinCE6.3)

Cstring 转 TCHAR

TCHAR之间的复制

lstrcpy(TCHAR  , TCHAR);

lstrcpy(TCHAR  , CString);

CString str= _T("留VS");

printf("str.getlength()=%d/n",str.GetLength()); //Unicode3个字符  //not set 4个字节。//mult 4//not set ==mult??

int a;

a=wcslen(str);

printf("a=%d/n",a);//3

a=_tcslen(str);

printf("a=%d/n",a);//3

TCHAR tstr[10];

a=wcslen(tstr);printf("a=%d/n",a);//1

lstrcpy(tstr,str);

a=wcslen(tstr);printf("a=%d/n",a);//3

、、、、、、、、、、、、、、、、、、、、、、、、、、、、、winbase.h

#define lstrcpyW wcscpy

#ifdef UNICODE

#define lstrcpy lstrcpyW

#else

#define lstrcpy lstrcpyA

#endif

、、、、、、、、、、、、、、、、、、、、、、、、、、、tchar.h

#define _tcscpy         wcscpy

wsprintf 复制(VS2005+WinCE6.3)

TCHAR *CurrentPath;

TCHAR CurrentFullPath[MAX_PATH];

wsprintf(CurrentFullPath,TEXT("%ls//*.*"),CurrentPath);

winbase.h中:

#ifdef UNICODE

#define wsprintf wsprintfW

#else

#define wsprintf wsprintfA

#endif

wcslen 获取字符串长度(环境VS2005 )

if(0==wcslen(CurrentPath)){};

wcslen(CString)在multi-byte/not set字符集编译错误

cannot convert parameter 1 from 'CString' to 'const wchar_t *'

在Unicode字符集正确,返回字符数。同Cstring.GetLength();

#define _tcslen         wcslen //(tchar.h)

_tcslen  在multi-byte/not set/Unicode均可以用,在Unicode下返回字符数,在multi-byte/not set下返回字节数。

以上结果在PC上得出,

wince6.3版本在multi-byte/not set 情况下报错,只能用Unicode,应该与所有SDK有关。

WinCE6.3 +Unicode:

Cstring str=_T(“留VS”);

wcslen(str)==_tcslen(str)==str.GetLength()==3。

strlen(str):报错,

cannot convert parameter 1 from 'CString' to 'const char *'

wmemcmp比较字符串 (VS2005+WinCE6.3)

if(wmemcmp(FolderName,_T("//网络"),wcslen(FolderName))==0){// 等于零代表想同}

_wcsuper 字符串小写换为大写(VS2005+WinCE6.3)

TCHAR *FileName;

//赋值

TCHAR *UpperFileName =_wcsupr(FileName);

字符集转化函数

MultiByteToWideChar

WideCharToMultiByte

LCMapString (简体与繁体转化)

悲催的,脑袋僵的很,明明知道Unicode一个字符两个字节,还一直想怎么获取一个CString 的字节数!    字符数*2!!!!弱弱弱

转载于:https://www.cnblogs.com/ezhong/archive/2011/04/15/2171477.html

Unicode/not set/multi-byte/部分常用函数相关推荐

  1. 【转】JNI学习积累之一 ---- 常用函数大全

    原文网址:http://blog.csdn.net/qinjuning/article/details/7595104 本文原创,转载请注明出处:http://blog.csdn.net/qinjun ...

  2. JNI学习积累之一 ---- 常用函数大全

    本文原创,转载请注明出处:http://blog.csdn.NET/qinjuning 最近一段时间,在工作方面比较闲,分配的Bug不是很多,于是好好利用这段时间就着源代码看了些许模块, 主要方式 还 ...

  3. 【终结版】C#常用函数和方法集汇总

    C#里面的常用的函数和方法非常重要,然而做题的时候会经常忘记这些封装好的方法,所以我总结一下 C#常用函数和方法集. [1]C#操作字符串的常用使用方法 在 C# 中,您可以使用字符数组来表示字符串, ...

  4. golang语言中bytes包的常用函数,Reader和Buffer的使用

    bytes中常用函数的使用: package main;import ("bytes""fmt""unicode" )//bytes包中实现 ...

  5. VB程序破解常用函数

    VB程序破解常用函数 分析VB程序最大的困难是它的API是VB特有的,且字符串查找并不是很容易 这里记录一些VB程序的常见函数 数据类型转换: a) __vbaI2Str 将一个字符串转为8 位1个 ...

  6. clickhouse 常用函数 算数函数 时间函数 日期函数 字符串函数 比较函数 数据类型函数 逻辑函数 类型转换函数 替换函数 数组函数 随机函数 编码函数 UUID URL IP 函数

    clickhouse 常用函数 算数函数 时间函数 日期函数 字符串函数 比较函数 数据类型函数 逻辑函数 类型转换函数 替换函数 数组函数 随机函数 编码函数 UUID URL IP 函数 算数函数 ...

  7. VBScript常用函数

    VBScript常用函数 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 1.Abs函数 1 Option Explicit 2 '@author :yinzhengjie 3 'b ...

  8. DB2数据库常用函数汇总

     DB2常用函数 AVG 返回平均值 语法:            .-ALL------. >>-AVG--(--+----------+--expression--)------- ...

  9. VC API常用函数

    第一个:FindWindow根据窗口类名或窗口标题名来获得窗口的句柄,该函数返回窗口的句柄, 这个函数的定义是这样的 HWND WINAPI FindWindow(LPCSTR lpClassName ...

  10. Delphi----DELPHI常用函数集及简要范例(转载大富翁)

    KeyLife富翁笔记   作者 : nakata_wang 标题 : DELPHI常用函数集及简要范例 关键字: HELP Functions 函数集 简要范例 分类 : 个人专区 密级 : 公开 ...

最新文章

  1. 第二阶段 铁大Facebook——十天冲刺(七)
  2. CentOS7 设置用户密码规则
  3. ACM新手之八大输入输出格式
  4. python学习教程,猜数字游戏开发
  5. apache +php + mysql_apache+php+mysql
  6. “云”上存储初显规模 如何架构是关键
  7. [导入]网页色彩搭配技巧
  8. web.xml 配置404和500错误的自定义页面
  9. Python matplotlip画多张图
  10. 解决tomcat中文乱码问题的方案
  11. [Java] POJ 2387 最短路问题
  12. 手机触屏特效Java_手机触屏触摸特效javascript-TouchSwipe(依赖于jquery库)中文说明...
  13. HDU6194 后缀数组的应用
  14. 古文字识别助手与众包平台——项目博客二
  15. 第一次 PCB 打样
  16. flink-streaming-platform-web 源码解读
  17. 坚持这7个工作习惯,帮你成为更专业的设计师
  18. arduino 读取当前时间_Arduino 101/Genuino 101 时间控制函数
  19. 入秋这么穿,没人比你更优雅
  20. @rive-app/canvas 交互式动画 学习笔记

热门文章

  1. 华为开源只用加法的神经网络:实习生领衔打造,效果不输传统CNN | CVPR 2020 Oral...
  2. 谷歌大罢工组织者离职:自曝不得不走,“遭遇秋后算账”
  3. 为什么Android变得对商业世界至关重要?
  4. Mongodb部署记录[3]-主从搭建
  5. java连接redis无法连接,报异常RedisConnectionException
  6. PageRank的基本原理以及个性化PageRank在推荐系统的应用
  7. Linux系统程序包管理工具 RPM
  8. objective-c(反射)
  9. 关于self.用法的一些总结
  10. 网管师、网管员和网络工程师的区别(2)