wchar_t是C/C++的字符数据类型,是一种扩展的字符存储方式,wchar_t类型主要用在国际化程序的实现中,但它不等同于unicode编码。unicode编码的字符一般以wchar_t类型存储。char是8位字符类型,最多只能包含256种字符,许多外文字符集所含的字符数目超过256个,char型无法表示。
  wchar_t数据类型一般为16位或32位,但不同的C或C++库有不同的规定,如GNU Libc规定wchar_t为32位[1],总之,wchar_t所能表示的字符数远超char型。
  标准C++中的wprintf()函数以及iostream类库中的类和对象能提供wchar_t宽字符类型的相关操作。
例如
  #include
  #include
  #include
  using namespace std;
  locale loc("chs"); //依环境而定,可能不同。
  int main()
  {
  wchar_t wStr[] = L"中文";
  wcout.imbue(loc);
  wcout << wStr << endl;
  return 0;
  }
将char[]转换成wchar_t
  可以用TEXT()方法将char转换成wchar_t
  例如: wchar_t appName[5]=TEXT("test");
  方法2:
  wchar_t* c2w(const char *str)
  {
  int length = strlen(str)+1;
  wchar_t *t = (wchar_t*)malloc(sizeof(wchar_t)*length);
  memset(t,0,length*sizeof(wchar_t));
  MultiByteToWideChar(CP_ACP,0,str,strlen(str),t,length);
  return t;
  }

http://blog.sina.com.cn/s/blog_a401a1ea0101fgxh.html

char[]转换成wchar_t的转换方法(GNU Libc规定wchar_t为32位)的更多相关文章

  1. 关于char[]转换成LPCWSTR的有关问题[转]

    一.问题的原因:VS2010默认采用宽字符UNICODE编码方式,定义了Unicode,因此相关的字符串必须为unicode字符串,而非ascii字符串. LPCWSTR中的W是宽字符的意思,是UNI ...

  2. NX二次开发-char*转换成CString,多字节转换成Unicode使用方法

    //定义一个结构体记录 struct group { CString text; //定义一个CString std::vector<tag_t> boudaries; std::vect ...

  3. 将真彩色转换成增强色的方法(即RGB32位或RGB24位颜色转换成RGB16位颜色的函数)

    今天由于程序需要,需要将真彩色转换成增强色进行颜色匹配,上网搜了一下没搜到相应函数,于是研究了一下RGB16位的增强色,写了这个函数: public static int RGB16(int argb ...

  4. 将 unsiged char 转换成对应的十六进制字符用以显示出来如 unsiged char a[]={0x00,0x01,0x30,0x38}转化为“00013038”

    int CEnCryptionAndDeCryptionDlg::Byte2Hex(const unsigned char* input,unsigned long inLen, unsigned c ...

  5. c++ char转换成string

    第一种:利用赋值号直接赋值 ; string b = a; /* 错误.因为string是一个指针,存储的值是所指向的地址,而char型存储的是内容,所以不可以直接用赋值号赋值 */ const ch ...

  6. char* 转换成 CString

    真是有意思: CString mess ;    mess = m_chLocalIP; 这样OK,但是写在一行就会报错 CString mess  = m_chLocalIP; //有问题

  7. CString 转换成 char *

    最近用到CString类,转换成 char * 类型,下面介绍用法: 一.CString 和 LPSTR 转换: CString转换成LPSTR: 方法一:CString server; LPSTR ...

  8. python---十进制转换成n进制

    """ 十进制转换成n进制 例子: 100转换成8进制-----144 256除8 商32 余0 32除8 商4 余0 4除8 商0 余4 每次结果的余数进栈, 最后出栈 ...

  9. Linux kernel 内存 - 页表映射(SHIFT,SIZE,MASK)和转换(32位,64位)

    0. Intro 如下是在32位下的情况,32位下,只有三级页表:PGD,PMD,PTE 在64位情况下,会有四级页表:PGD,PUD,PMD,PTE 但是原理基本上是一样的,本文主要是想记录一下页表 ...

随机推荐

  1. 学习ExtjsFor.NET(第二个案例-Array的Every方法)

    Ext.Array.every(Array array,Function fn,Object scope)是一个遍历的方法. array是数组,fn是方法,scope是作用域.every返回true和 ...

  2. iOS内购的订单对应和补单

    内购的关键类: 1.SKPayment(SKMutablePayment可将自己的参数一对一与苹果产生的payment对应起来) 2.TransactionObserver:交易状态更新时执行此方法, ...

  3. socket中的option

    /// Set an option on the socket. /** * This function is used to set an option on the socket. * * @pa ...

  4. PHP开发APP接口

    第1章 APP接口简介 - 课程简介 (:) - APP接口介绍 (:) - 客户端APP通信 (:) 最近学习 - 客户端APP通信格式区别 (:) - APP接口做的哪些事儿 (:) 第2章 封装 ...

  5. Unix/Linux笔记全集

    1:Unix/Linux操作系统概述 要求:理解应用软件和操作系统的区别,掌握系统的Kernel(核心)和shell(外壳)之间的关系以及各自的作用 Solaris:Solaris 是Sun Micr ...

  6. hdu 4545 魔法串 2013金山西山居创意游戏程序挑战赛——初赛(1)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4545 这题太坑了,小明的串可以任意删掉某个字符 这句话不知道大家是怎么理解的,我觉得应该是能够删除其中 ...

  7. SQL Server Mysql primary key可更新性分析

    SQL Server: 一般来说SQL Server 中表的主键是支持更新操作的.但是如果这个主键是由identity(1,1)这类的方式生成的话它是不可更新的. Mysql : Mysql 中表的主 ...

  8. android小知识之EditText输入框之值监控以及类型限制(数字,英语字母,下划线,是否为星号密码)

    1.设置EditText的值监听事件 . <span style="font-size:14px;color:#990000;"> EditText ed=new Ed ...

  9. ComboBox控件绑定数据源

    最近在研究机房收费系统的组合查询的方法时,看到了ComboBox控件可以进行数据绑定,我觉得这个功能真的很不错,可以给我省去很多的麻烦. 下面是我组合查询窗体界面 一.数据转换方法 现在我们开看一下我 ...

  10. java 基本语法元素

    单行注释:  // 多行注释: /*         */   java文档: /**JAVA文档      *注释      */   : :  类似于中文的句号.   语句块:语句块也叫做复合语句 ...