Unicode编码和多字节编码的区别,及转换代码

本文介绍了Unicode编码和多字节字符集的区别,包括VS项目属性设置的影响,以及wchar_t、_T、TCHAR等概念。文章详细讨论了宽字节与双字节字符集,并提供了字符串转换的背景和解决方案,强调了Unicode在国际化中的优势。此外,还阐述了如何在多字节和宽字节字符串之间进行转换,特别是从GBK到UTF8的转换。
摘要由CSDN通过智能技术生成

概述

在平时写代码的处理字符串的过程中,老是碰见乱码的问题,具体原因呢前面的文章我已经解释了,但是还有一部分小的问题没有解决。比如下面的几个问题:

  1. VS项目属性里面的字符集选择Unicode和多字节字符集的不同
  2. 写代码时宽字节wchar_t、_T、TCHAR等是啥意思
  3. 使用不同字符集的字符串之间转换

1、VS项目属性不同字符集的区别

首先介绍一下单字节字符集:顾名思义,单字节字符集就是用一个字节表示一个字符,简称SBCS。ASCII就是单字节字符集。在编码的过程中char类型就是单字节编码。

使用Unicode字符集:前面咱已经介绍什么是Unicode字符集了,不懂的请看前面的文章字符集与字符编码。默认编码是USC-2,即所有的字符都是固定的使用2个字节进行编码。因为比单字节字符宽,所有又叫宽字节编码。宽字节编码有很多,Unicode编码只是宽字节编码中的一种实现方式,其它的比如:USC-4。

使用多字节字符集:指使用多个字节表示一个字符,其实就是ANSI编码。有的字符使用一个字节,如ASCII字符,有的字符使用多个字节表示,如中文。英文名简称MBCS,由于Windows里使用的多字节字符绝大部分是两个字节,所以MBCS常被用**DBCS(双字节字符)**代替。

选择这两者的优缺点比较:
在这里插入图片描述
另外Unicode是国际通用的字符集,所以很容易在不同字符集之间进行转换,有利于软件的国际化。

2、wchar_t 、 _T 、TCHAR等含义

wchar_t意思是宽字节,w是Wide(宽)的缩写,所以只有在选择Unicode编码时才能使用。

wchar_t的定义为:typedef unsigned short wchar_t;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值