宽字符

转载 2016年05月30日 14:58:45

宽字符的设置,需要注意的有以下几点:

1: 使用中文必须本地化 */所以需要加入头文件 #include<locale.h> 还要在代码中设置本地编码 setlocale(LC_ALL, "zh-CN");
2: 在宽字符中,字符都占 2 个字节 
3:乱码的原因、经常出现的码就是不明的解析方式造成的 

             1):设置本地化 #include<locale.h>
     2):设置本地编码解析方式setlocale(LC_ALL, "zh-CN");

以下代码是对单个宽字节使用:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
/* 使用中文必须本地化 */
#include<locale.h>

/* 在宽字符中,字符都占 2 个字节 */
/*
	#include<locale.h>
	setlocale(LC_ALL, "zh-CN");
	设置中文,经常出现的码就是不明的解析方式造成的
*/

void main()
{
	/* 设置中文,经常出现的码就是不明的解析方式造成的  */
	setlocale(LC_ALL, "zh-CN");

	wchar_t wch = L'我';
	putwchar(wch);

	
	system("pause");
}

求宽字符与普通的字符所对应的ACSII有什么不同:

 无论是宽字符还是窄字符,ASCII都是一样的,只是所使用的内存空间不一同,即装他们的盒子大小不一样,但是ASCII值是一样的。

看下面的代码:

void main()
{
	/* 设置中文 */
	//setlocale(LC_ALL, "zh-CN");

	wchar_t wch = L'A';
	/* 一字汉字占二个字节 */
	char ch = 'A';
	/* 都是65 无论是宽字符还是窄字符,ASCII都是一样的,只是所使用的内存空间不一同
	   即装他们的盒子大小不一样,但是ASCII值是一样的。	
	*/
	printf("%d, %d", ch, wch);	
	

	system("pause");
}


下面代码是对宽字符字符串代码的实现及宽字符的长度求值实现:

/* 求宽字符串的长度 */
int mywcslen(const wchar_t *str)
{
	int sum = 0;
	/* 都要使用宽字符标示 */
	while (*str != L'\0')
	{
		str++;
		sum++;
	}
	return sum;
}
/* 宽字符串 */
void main()
{
	/* 设置中文 */
	setlocale(LC_ALL, "zh-CN");

	wchar_t wch[10] = L"中国人民解放军!";
	/* 一字汉字占二个字节,自己实现的求长度,系统自带的函数为:wcslen() */
	int length = mywcslen(wch);
	printf("%d\n", length);
	wprintf(L"%ls", wch);
		

	system("pause");
}




C++宽字符用法 .

  • 2010年09月17日 15:28
  • 62KB
  • 下载

彻底解密C++宽字符:1、从char到wchar_t

彻底解密C++宽字符:1、从char到wchar_t " href="http://www.163pan.com/files/c0x000k09.html" style="color:rgb(52,...

多字节和宽字节字符相互转化

  • 2013年08月16日 17:29
  • 905B
  • 下载

C++宽字符处理对照

  • 2012年10月12日 14:19
  • 5KB
  • 下载

Android NDK 下的宽字符编码转换及icu库的使用

    原贴http://topic.csdn.net/u/20101022/16/1b2e0cec-b9d2-42ea-8d9c-4f1bb8320a54.html?r=70149216 ,看过并动...

彻底解密C++宽字符

  • 2010年06月27日 09:36
  • 185KB
  • 下载

彻底解密C++宽字符,C++国际化策略解析

“这个问题比你想象中复杂” (我也学下BS的风格,虽然这句话是我自己临时想说的。^^) 从字符到整数 char是一种整数类型,这句话的含义是,char所能表示的字符在C/C++中都是整数类型。好,...

Windows编程(2)-Unicode简介之宽字符与C

1. 美国信息交换标准码(ASCII:American Standard Code for Information Interchange):用7位二进制数来表示26个小写字母、26个大写字母、10个...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:宽字符
举报原因:
原因补充:

(最多只允许输入30个字)