ASCII 转换为UNICODE
来源:互联网 发布:mv歌词制作软件 编辑:程序博客网 时间:2024/05/01 22:58
方法一: 使用MultiByteToWideChar
CFile file(strPath,CFile::modeRead|CFile::typeBinary);
int num=file.GetLength(); // 得到的是文件字节(BYTE)的数目,而不是字数
char *read;
read=new char[num];
file.Read(read,num); //将字符串从文件中读取到read动态数组中,num表示从文件中读取num个BYTE
WCHAR *wword; //Unicode 宽字符类型
wword=new WCHAR[num];
if (wword==NULL)
{
free(wword);
}
memset(wword,0,num*sizeof(WCHAR)); // 对分配的空间进行初始化为0, 初始化为0很重要,因为cstring也是以0为结束符的
MultiByteToWideChar(CP_ACP,0,read,num,wword,num); //将保存在read数组中的num个字节 转换到 wword中, wword空间可能会有剩余,所以应该先对其空间进行初始化为0的操作
for (int i=0;i<num;i++)
{
strText+=wword[i];
} //将Unicode宽字符数组中的文字 置入CString串中,因CString以0为结尾,所以当wword剩余空间对cstring字符串没影响,因为其已经被初始化为0了
file.Close();
delete wword;
delete read;
m_RichEdit.SetWindowText(strText);
源码:
方法二:使用USES_CONVERSION
此方法比较简单
共分两部:
第一步: 用一数组保存待转换的字符串,字符串必须以'/0'结束
第二步: 开始转换,将结果保存在CString 类对象中
CFile file(strPath,CFile::modeRead|CFile::typeBinary);
int length=file.GetLength();
char *read=new char[length+1]; // 定义一动态数组,数组大小为文件长度+1,这个1用来存放文字串的结束符'/0'
file.Read(read,length);
read[length]='/0'; // 必须要加字符串结束符,否则转换会出错
USES_CONVERSION; // 开始转换
CString str=A2W(read);
m_RichEdit.SetWindowText(str);
源码:
- ASCII 转换为UNICODE
- unicode 如何转换为ASCII
- 将Unicode转换为ASCII
- unicode 如何转换为ASCII?
- ASCII到UNICODE转换
- Unicode ASCII 编码转换
- C#中,将Unicode 字符转换为ascii字符
- Unicode和GB2312编码表并转换为ASCII字符
- 使用python将用ASCII表示的16进制unicode编码的ASCII字符串转换为unicode字符串
- unicode和Ascii的转换
- unicode和Ascii的转换
- Unicode与ASCII的转换
- UTF8, ASCII, UNICODE相互转换
- C# Unicode和ascii转换
- Unicode 和ASCII相互转换
- ASCII与unicode的转换
- Ascii utf8 Unicode 字符串转换
- 中文-Ascii-Unicode的转换
- c++标准库以及STL
- 两个字节合并成一个字
- 关于c++检测内存泄露相关知识(windows程序调试)
- update和saveOrUpdate详解
- AutoCode代码生成器(SSH版)
- ASCII 转换为UNICODE
- SSH代码生成器
- SSH架构
- HOST文件的应用
- 暂停2.4G手机支付:中国移动缓兵之计
- amchart的使用!~
- awk
- TOIBE编程语言排名
- 兼容IE与FF的Javascript加载Flash