用ATL的W2A和A2W宏转换Unicode与ANSI字符串

#include <atlbase.h>

代码如下:

//使用ATL的W2A和A2W宏必须使用USES_CONVERSION

USES_CONVERSION;

//Unicode字符串

wchar_t* wszText=L"1.Unicode字符转换为ANSI;";

printf("%s\n",W2A(wszText));

//用wprintf输出非英文字符,需要设置当前的地域信息

setlocale(LC_ALL,"chs");

//ANSI字符串(ANSI:American National Standards Institute)

//中文内码MBCS:Multi-Byte character sets,英文内码SBCS:Single-Byte character sets)

char* szText="2.ANSI字符转换成Unicode.";

wprintf(L"%s\n",A2W(szText));

时间: 2024-10-08 13:37:29

用ATL的W2A和A2W宏转换Unicode与ANSI字符串的相关文章

字符编码(续)---Unicode与ANSI字符串转换以及分辨字符编码形式

Unicode与ANSI字符串转换 我们使用windows函数MultiByteToWideChar将多字节字符串转换为宽字符字符串,如下: int MultiByteToWideChar( UINT uCodePage, DWORD dwFlags, PCSTR pMultiByteStr, int cbMultiByte, PWSTR pWideCharStr, int cchWideChar); uCodePage参数标识了与多字节字符串关联的一个代码页值.dwFlags参数允许我们进行额

C++转换unicode utf-8 gb2312编码

windows开发环境下用VC++6.0 对unicode .utf-8. gb2312 三种编码格式之间的转换方法: [cpp] view plaincopy #include <iostream> #include <string> #include <Windows.h> using namespace std; void unicodeToUTF8(const wstring &src, string& result) { int n = Wid

使用UTF8-CPP转换unicode编码 附录:UTF8和UTF16和UTF32和Unicode编码

本文用于解决如何用C++处理字符串的编码格式.本文采用的是成熟便捷的UTF8库来处理这个问题.首先是下载UTF8库,网址为:http://utfcpp.sourceforge.net/ 为了方便后续使用这个C++库,我们可以直接将源程序文件utf8.h和文件夹utf8复制到目录/usr/local/include 下,这样就可以在项目中直接调用了. 执行命令: mv * /usr/local/include  1. 最简实例: #include <iostream> #include <

GUID转换成16位字符串或19位唯一字符串

整理几个常用GUID转换成16位字符串或19位唯一字符串方法: /// <summary> /// 根据GUID获取16位的唯一字符串 /// Author : 付义方 /// </summary> /// <param name=\"guid\"></param> /// <returns></returns> public static string GuidTo16String() { long i = 1;

Unicode与ANSI的转换

string UnicodeToANSI(const wstring& str) { char *pStr; int iwstrLen = WideCharToMultiByte(CP_ACP, 0, str.c_str(), -1, 0, 0, 0, 0); cout << "iwstrlen=" << iwstrLen << endl; pStr = new char[iwstrLen +1]; memset(pStr, 0, sizeo

Python: 在Unicode和普通字符串之间转换

Unicode字符串可以用多种方式编码为普通字符串, 依照你所选择的编码(encoding): <!-- Inject Script Filtered --> Toggle line numbers 1 #将Unicode转换成普通的Python字符串:"编码(encode)" 2 unicodestring = u"Hello world" 3 utf8string = unicodestring.encode("utf-8") 4

php实现兼容Unicode文字的字符串大小写转换strtolower()和strtoupper()

前言 网上流传着这么一个腾讯笔试题: PHP的strtolower()和strtoupper()函数在安装非中文系统的服务器下可能会导致将汉字转换为乱码,请写两个替代的函数实现兼容Unicode文字的字符串大小写转换. 举个例子,我们直接对中英文混排的字符串处理是会出乱码的,如: php > $a = 'abc中华ABC'; php > var_dump(strtoupper($a)); string(12) "ABC??ō?ABC" php > 我们知道中文在 UT

C# DataSet 的getXML()方法转换获得的XML字符串,数字开头,包含其他特殊字符时的处理

C# DataSet 的getXML()方法转换获得的XML字符串,数字开头,包含其他特殊字符时的会给转义成以"_x00"开头,"_"结尾的16进制的ascii码.  导致前台与Grid++Report的前面的数据列的绑定不一致了,所以,就要进行单独处理. 将Grid++Report前台的字段名称,也按照这种方式进行编码,使之匹配上. 编码方法如下.中文和英文不编码,其余字符串都以编码表示字段列. internal string EnCode16ASI(string

Python——在Unicode和普通字符串之间转换

1.1. 问题 Problem You need to deal with data that doesn't fit in the ASCII character set. 你需要处理不适合用ASCII字符集表示的数据. 1.2. 解决 Solution Unicode strings can be encoded in plain strings in a variety of ways, according to whichever encoding you choose: Unicode