关于介绍Unicode字符串转换成ASCII码字符串的方法的网页很多了,下面是一个完成转化的函数:
char * UnicodeToASCII(UCHAR * buf)
{
wchar_t* pwszUnicode = (wchar_t *) buf;
int iSize;
char* pszMultiByte;
iSize = WideCharToMultiByte(CP_ACP, 0, pwszUnicode, -1, NULL, 0, NULL, NULL);
pszMultiByte = (char*)malloc((iSize+1)/**sizeof(char)*/);
WideCharToMultiByte(CP_ACP, 0, pwszUnicode, -1, pszMultiByte, iSize, NULL, NULL);
return(pszMultiByte);
}
我在读取NTFS格式文件系统中记录的文件名数据时,转化出来总是这样的效果:
Unicode代码 ---- > “testfile.txt??”
后面总是多两个问号,有的文件名转化出来多的怪字符则更多。分析以后发现出现这个问题的原因是调用UnicodeToASCII函数时的参数buf中的问题。
buf用来保存读取到的Unicode串,由于读到的Unicode串只有“testfile.txt”对应的代码数据,并没有Unicode串结束的标志。因此Unicode串转换时总是多转化了数据。可以这样做来解决上面的问题:
1) 申请buf空间时大小为Unicode串Size + 2;
2) buf[size] = '\0';
buf[size + 1] = '\0';
我实验了一下,只赋值一个“\0”似乎不行。
不当处请指正!
分享到:
相关推荐
ASCII_UNICODE_UTF8字符串互相转换的C++代码ASCII_UNICODE_UTF8字符串互相转换的C++代码ASCII_UNICODE_UTF8字符串互相转换的C++代码ASCII_UNICODE_UTF8字符串互相转换的C++代码ASCII_UNICODE_UTF8字符串互相转换的...
Qt字符转换,串口接收数据转为中文显示可用。Qt中的字符编码转换:UTF8、Unicode、GBK、ASCII、16进制字符、16进制数值
ASCII,UNICODE,UTF8字符串互相转换的C++代码
简单实用的字符串转换工具,支持一边输入一边转换,使用方便 具体功能:★字符串转换为Unicode ★十进制转换为ASCII ★ASCII转换为十进制 ★数字转换为科学计数法
输入一段字符串(汉字或者英文),可将其转换为Unicode编码或AscII编码。 其中有一段代码避免程序的重复执行(调试通过),原理:在程序启动时将Application的Title特性字段的值暂时改变。利用Windows API函数Find...
) UNICODE2ASCII(源文件,目的地文件) 将 SOURCEFILE 的内容转换为 ASCII 并将其写入 DESTINATIONFILE ASCIISTRING = UNICODE2ASCII('string', UTFSTRING) 将 UTFSTRING 转换为 ASCII 并返回字符串。 unicode ...
如果希望函数返回ANSI字符串,系统就会首先将Unicode字符串转换成ANSI字符串,然后将结果返回给您的应用程序。进行这些字符串的转换需要占用系统的时间和内存。如果用Unicode来开发应用程序,就能够使您的应用程序...
1数据转换:ANSI等编码、UTF8编码、UTF16编码(实际为Unicode编码)、TCHAR互转,可以先获取转换出的数据在存储时所需的大小 2字符串查找:正向查找、逆向查找、指定偏移查找 3字符串切割:正向分割、逆向分割、指定...
最近因为业务需要,在页面上实现带汉字的字符串转换为ascii(gb2312)。例如:中->d6d0。上网看了N多的文章。要么是转换为unicode码,牛头不对马嘴。要么是采用对应表,写了几十K的代码。经过反复研究,查阅大量资料。...
ASCII/GB2312/UTF-8/Unicode编码 字符串与字节转换查看源码。采用Visual Studio 2008开发,使用C# Windows Form编写,代码简单易懂。 输入:CSDN-全球最大中文IT社区。 选择:GB2312 结果:4353444E2DC8ABC7F2D7EEB...
工具功能: 字符串转ASCII编码 字符串转UNICODE编码 ASCII编码转字符串 UNICODE编码转字符串 汉字转ASCII编码 汉字转...比如:字符串“你好” 转为 ASCII“C4 E3 BA C3”和UNICODE“60 4F 7D 59”,也可以实现反转换
众多字符集编码的区别Unicode向GB2312转换方法说明及包括ASCII码部分及GB2312字符集。 ASCII码部分为128个字符,GB2312字符集为7445个字符。 ASCII码部分不需要用映射表。 GB2312 table可分为4段,每段都是连续的。...
文本的字符串转换工具 ...功能:本软件用于将文本的字符串转换为 Text、ASCII、Default、Unicode、BigEndianUnicode、UTF-8、UTF-7、GBK、BIG5 之间的互相转换,用于文本查询。转换结果使用十六进制表示。
只要安装了jdk,都可以转换的简单windows命令,中文转Unicode码和Unicode码转中文,简单、方便、实用。
为字符串时返回第一个字符的unicode编码 // 返回值: 整型。字符的unicode编码值 // 补充说明: 常用半角字符,如大小写字母、数字、常用标点等,其unicode编 // 码值与ascii码相同。因此本函数也可以用作不严格地判断...
//生成Unicode字符 var charCode = charValue.charCodeAt(0);//获取指定字符的十进制表示. var hexOri="0x"+charCode.toString(16);;//将int值转换为十六进制 alert("hex:"+hex+"\ncharValue:"+charValue+"\...
1.2. 字符串基础 - ASCII, DBCS, Unicode 2 1.3. 字符串的存储 3 1.4. 字符串处理函数 3 1.5. C字符串函数大全 3 1.6. 字符串遍历 7 1.7. 再谈strxxx() 与_mbsxxx() 8 1.8. Win32 API中的MBCS 和 Unicode的二种字符...
字符串是指用单引号或双引号括起来的字符序列,分为ASCII字符串常量和Unicode 字符串常量。 ASCII字符串常量是用单引号括起来的,由ASCII字符构成的符号串。举例:‘hello’,‘How are you!’ Unicode 字符串常量与...
ASCII_UNICODE_UTF8字符串互相转换的C++代码ASCII_UNICODE_UTF8字符串互相转换的C++代码ASCII_UNICODE_UTF8字符串互相转换的C++代码ASCII_UNICODE_UTF8字符串互相转换的C++代码ASCII_UNICODE_UTF8字符串互相转换的...
字符串转ASCII码、字符串转Unicode、字符串完全转Unicode、ASCII码转字符串、ASCII码转Unicode、Unicode转字符串、完全Unicode转字符串。 CodeConverter有3个版本可选,差别仅在于Unicode转换功能的实现上,其他...