导航
  • 主页
  • VC综合技术
  • 互联网技术
  • MFC AppLauncher
  • .NET 技术
  • 界面
  • 进程
  • 算法
  • 硬件/系统
  • 数据库
  • VC++技术资源

怎么才能把字符串转换成utf8码? 急哦!!!!!!!!!!!!!!!!!!

fj44 2004-04-08 07:29:09
怎么才能把字符串转换成utf8码? 急哦!!!!!!!!!!!!!!!!!!
...全文
261 点赞 收藏 13
写回复
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
fj44 2004-04-08
出来了,谢谢大家了
回复
xstring 2004-04-08
You are welcome
回复
fj44 2004-04-08
xstring(麻雀) 谢谢啦 让我先试试
回复
xstring 2004-04-08
恩,对
回复
fj44 2004-04-08
xstring(麻雀)

那段代码难道是 先把字符串 转换成 utf8 (在//strB即为所求 之前)

然后再转换回来 是吗?
回复
xstring 2004-04-08
你看错了,你再仔细看看他的代码,和我说的是一样的,只不过他的某些注释是错误的。
回复
fj44 2004-04-08
在 //strB即为所求 之后是不是就是吧 字符串转换成utf8

先把 字符串转换成unicode码 用MultiByteToWideChar 为什么里面的参数是CP_UTF8
xstring(麻雀) 不是说应该是CP_ACP??
回复
fj44 2004-04-08
bluebohe(薄荷) (MVP):
在你的代码中, //strB即为所求 之前 是把utf8转换成。。。

为什么每次都要有2部转换呀?
回复
xstring 2004-04-08
windows下面的unicode使用的就是utf16
回复
fj44 2004-04-08
unicode 和utf16是一样的?
回复
bluebohe 2004-04-08
这里面包含了两个方向的转换,你看一下吧
#include "Windows.h"
int main(void)
{
char str [ 256 ] = "唐志国" ; //一段UTF-8编码
WCHAR* strA;
int i= MultiByteToWideChar ( CP_ACP , 0 ,(char*) str ,-1 ,NULL,0);
strA = new WCHAR[i];
MultiByteToWideChar ( CP_ACP , 0 ,( char * ) str, -1, strA , i);

i= WideCharToMultiByte(CP_UTF8,0,strA,-1,NULL,0,NULL,NULL);
char *strB=new char[i];
WideCharToMultiByte (CP_UTF8,0,strA,-1,strB,i,NULL,NULL);
//strB即为所求

delete []strA;

i= MultiByteToWideChar ( CP_UTF8 , 0 ,(char*) strB ,-1 ,NULL,0);
strA = new WCHAR[i];
MultiByteToWideChar ( CP_UTF8 , 0 ,( char * ) strB, -1, strA , i);

delete []strB;

i= WideCharToMultiByte(CP_ACP,0,strA,-1,NULL,0,NULL,NULL);
strB=new char[i];
WideCharToMultiByte (CP_ACP,0,strA,-1,strB,i,NULL,NULL);
//strB即为所求
delete []strA;

delete []strB;


return 0;
}
回复
fj44 2004-04-08
难道我们在屏幕上输出的文字就是ANSI码吗?

也就是说我们需要进行2次变换?
回复
xstring 2004-04-08
MultiByteToWideChar (CP_ACP, ...); // ANSI字符串转化成Unicode字符串
WideCharToMultiByte (CP_UTF8, ...); // Unicode字符串转化成Utf8字符串
回复
发动态
发帖子
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……