`
helloyesyes
  • 浏览: 1269495 次
  • 性别: Icon_minigender_2
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

Unicode字符串转换成ASCII码字符串的问题

 
阅读更多

关于介绍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字符串互相转换的C++代码ASCII_UNICODE_UTF8字符串互相转换的...

    Qt中的字符编码转换:UTF8、Unicode、GBK、ASCII、16进制字符、16进制数值

    Qt字符转换,串口接收数据转为中文显示可用。Qt中的字符编码转换:UTF8、Unicode、GBK、ASCII、16进制字符、16进制数值

    VC ASCII,UNICODE,UTF8字符串互相转换的C++代码

    ASCII,UNICODE,UTF8字符串互相转换的C++代码

    字符串转换工具

    简单实用的字符串转换工具,支持一边输入一边转换,使用方便 具体功能:★字符串转换为Unicode ★十进制转换为ASCII ★ASCII转换为十进制 ★数字转换为科学计数法

    Delphi字符编码转换工具,hex/unicode/ascII互转.rar

    输入一段字符串(汉字或者英文),可将其转换为Unicode编码或AscII编码。 其中有一段代码避免程序的重复执行(调试通过),原理:在程序启动时将Application的Title特性字段的值暂时改变。利用Windows API函数Find...

    unicode2ascii:将 unicode 编码文件转换为 ASCII 编码文件-matlab开发

    ) UNICODE2ASCII(源文件,目的地文件) 将 SOURCEFILE 的内容转换为 ASCII 并将其写入 DESTINATIONFILE ASCIISTRING = UNICODE2ASCII('string', UTFSTRING) 将 UTFSTRING 转换为 ASCII 并返回字符串。 unicode ...

    VC++的Unicode编程.doc

    如果希望函数返回ANSI字符串,系统就会首先将Unicode字符串转换成ANSI字符串,然后将结果返回给您的应用程序。进行这些字符串的转换需要占用系统的时间和内存。如果用Unicode来开发应用程序,就能够使您的应用程序...

    C++ gbk转unicode、ansi转unicode,字符串查找、切割、转十六进制、转二进制、转义,随机数等数据处理类源码

    1数据转换:ANSI等编码、UTF8编码、UTF16编码(实际为Unicode编码)、TCHAR互转,可以先获取转换出的数据在存储时所需的大小 2字符串查找:正向查找、逆向查找、指定偏移查找 3字符串切割:正向分割、逆向分割、指定...

    javascript结合vbscript 获取汉字的ascii码

    最近因为业务需要,在页面上实现带汉字的字符串转换为ascii(gb2312)。例如:中->d6d0。上网看了N多的文章。要么是转换为unicode码,牛头不对马嘴。要么是采用对应表,写了几十K的代码。经过反复研究,查阅大量资料。...

    ASCII/GB2312/UTF-8/Unicode编码 字符串与字节转换查看源码

    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转换方法说明及示例

    众多字符集编码的区别Unicode向GB2312转换方法说明及包括ASCII码部分及GB2312字符集。 ASCII码部分为128个字符,GB2312字符集为7445个字符。 ASCII码部分不需要用映射表。 GB2312 table可分为4段,每段都是连续的。...

    点睛文本编码查询(文本的字符串转换工具)

    文本的字符串转换工具 ...功能:本软件用于将文本的字符串转换为 Text、ASCII、Default、Unicode、BigEndianUnicode、UTF-8、UTF-7、GBK、BIG5 之间的互相转换,用于文本查询。转换结果使用十六进制表示。

    Unicode码转中文和中文转Unicode码的最简便的方法

    只要安装了jdk,都可以转换的简单windows命令,中文转Unicode码和Unicode码转中文,简单、方便、实用。

    JavaScript字符的unicode编码

    为字符串时返回第一个字符的unicode编码 // 返回值: 整型。字符的unicode编码值 // 补充说明: 常用半角字符,如大小写字母、数字、常用标点等,其unicode编 // 码值与ascii码相同。因此本函数也可以用作不严格地判断...

    javascript十六进制数字和ASCII字符之间的转换方法

    //生成Unicode字符 var charCode = charValue.charCodeAt(0);//获取指定字符的十进制表示. var hexOri="0x"+charCode.toString(16);;//将int值转换为十六进制 alert("hex:"+hex+"\ncharValue:"+charValue+"\...

    C++字符串完全指南.doc

    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的二种字符...

    MySQL数据库:常量、变量.pptx

    字符串是指用单引号或双引号括起来的字符序列,分为ASCII字符串常量和Unicode 字符串常量。 ASCII字符串常量是用单引号括起来的,由ASCII字符构成的符号串。举例:‘hello’,‘How are you!’ Unicode 字符串常量与...

    gbk-unicode-utf8相互转换

    ASCII_UNICODE_UTF8字符串互相转换的C++代码ASCII_UNICODE_UTF8字符串互相转换的C++代码ASCII_UNICODE_UTF8字符串互相转换的C++代码ASCII_UNICODE_UTF8字符串互相转换的C++代码ASCII_UNICODE_UTF8字符串互相转换的...

    CodeConverter v1.0┊码制转换器┊CodeConverter(VB)_Full.zip

    字符串转ASCII码、字符串转Unicode、字符串完全转Unicode、ASCII码转字符串、ASCII码转Unicode、Unicode转字符串、完全Unicode转字符串。 CodeConverter有3个版本可选,差别仅在于Unicode转换功能的实现上,其他...

Global site tag (gtag.js) - Google Analytics