[问题]多字节字符到宽字符转换

C、C++和Java语言
回复
bismy
帖子: 7
注册时间: 2006-08-06 21:02
送出感谢: 0
接收感谢: 0

[问题]多字节字符到宽字符转换

#1

帖子 bismy » 2006-12-29 0:42

代码: 全选

int main(){
	char mb[]="你";

	printf("%d\n",sizeof(mb));
	char *env=getenv("LC_CTYPE");
	printf("%s\n",env); //LC_CTYPE尝试设置为en_US.UTF-8或zh_CN.UTF-8或UTF_8,默认为en_US.UTf-8
	wchar_t wc;
	mbstate_t state;
	memset(&state,'\0',sizeof(state));

	size_t size=mbrtowc(&wc,mb,MB_LEN_MAX,&state);//转换出错, 当mb[0]为ASCII码时正确
	if(size==(size_t)(-1)){
		printf("Error\n");
		return 1;
	}
	else printf("%d\n",wc);
	return 0;
}
为什么输出老是 Error?
头像
htqx
帖子: 72
注册时间: 2006-12-30 21:02
送出感谢: 0
接收感谢: 0

#2

帖子 htqx » 2007-01-01 20:10

听说 linux c++编译器的文本字符串 不是 unicode的.
adolphlu
帖子: 19
注册时间: 2006-10-27 21:48
送出感谢: 0
接收感谢: 0

#3

帖子 adolphlu » 2007-01-06 12:16

你的 sample code 好像只能在 windows 平台上執行吧?
回复

回到 “C/C++/Java”