栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

Windows编程UTF-8,UTF-16,ASCII,宽字节,窄字节等编码问题汇总

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Windows编程UTF-8,UTF-16,ASCII,宽字节,窄字节等编码问题汇总

宽字节输出乱码问题
# Unicode 字符集
字符集起始范围结束范围
ASCII0x00000x007F
ISO 8859-1 ASCII扩展码0x00800x00FF
希腊字母0x03700x03FF
西里尔文0x04000x04FF
亚美尼亚文0x05300x058F
希伯来语0x05900x05FF
中日韩0x30000x9FFF
UTF-16:你好0x4f600x597d
UTF-8:你好0xe4bda00xe5a5bd
UTF-8 解析到 UTF-16过程



	Unicode,他只有一个字符集。代码的编制与ISO 10646-1标准相似的。
//主函数测试
int main() {
	//setlocale(LC_ALL, "zh_CN.UTF-8");
	//system("chcp 936 > /nul");
	//system("chcp 65001 > /nul");
	setlocale(LC_ALL, "chs");
	system("chcp");
	TCHAR tStr[] = _T("abc你好");
	const TCHAR* tsz = _T("abc你好啊");
	wprintf(L"%sn", tStr);
	return 0;
}
宽字符
	ANSI C, 通过一种叫"宽字符"的概念来支持多个字节代表一个字符的字符集。
	ANSI C 还支持多字节字符集,如那些在中文,日语和韩语版本的Windows中支持的字符集。然而,这些多字节字符集被当作单字节值得字符串时,在那些字符串里一些字符改变了后续字符的含义。多字节字符集主要影响C语言运行库函数。
	宽字符并不一定是Unicode。Unicode只是宽字符编码的一种实现。
打印所有的Unicode字符
#define _CRT_SECURE_NO_WARNINGS

#include 
#include 

int main() {
	setlocale(LC_ALL, "zh_CN.UTF-8");
	char chr = 0x41;
	wchar_t str[3] = {0};
	//str[0] = 0x4f60;
	//str[1] = 0x4f61;
	
	for (int i = 0x3000; i < 0x9FFF; i++) {
		str[0] = i;
		wprintf(L"%s: 0x%xn", str, str[0]);
	}
	printf("nn");
	wprintf(L"%s", str);
	return 0;
}		
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/835742.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号