空格符在多种字符集下的编码

本文讨论了在不同编码标准(如UNICODE、UTF-8、GB2312等)下空格的不同表示形式,强调了在编程时正确识别这些空格的重要性。特别提到了中文环境下UNICODE空格的特殊性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        前一段时间在写代码时(在VC下),要去掉网页内容中的空格之类的空白符,发现一个问题,那就是有一些空格并没有被去掉,一时不知所措,郁闷了一段时间。后来发现,在已经早有准备的UNICODE上出现了错误,或是理解为在UNICODE上出现了转机。没想到的是在UNICODE下空格是0x3000(12288),而一直当成0x0020(32),UNICODE下的扩展ASCII。若是英文下的空格那肯定是0x0020,若是中文下的空格那就是0x3000,当然是在UNICODE大环境下。

        在写网页文章时,不乏在中文输入法的情况下输入空格,这时要想去掉就的去判断是否==0x3000,这样才能做进一步的处理。现在还没有发现在中文输入法下,输入TAB键是否不一样!我目前发现还是一样的,都是0x0009(9),若发现不行了,再回来补充吧!

        在网页中的字符集编码又不相同。网页字符集常用的有:UTF-8、GB2312、GB18030等,在这些字符集下空格的编码又不相同,它是0xA1A1(41377),在编程时可能要注意。

        虽然想空格这样的可能是一些不起眼的字符,但是在细化处理时却比较麻烦。比如从网页中读用户输入的数据并保存到数据库时,就很有可能要对用户“无意”输入的一些类似空格等字符进行处理,这时就要注意了。若是在VC中嵌入网页并进行数据的处理,则就更应该注意一些空白符了。我发现通常从网页中获取的空白符包括:

                   空字符(0x0000)

 报警(0x0007)

 水平制表符(0x0009)

 换行符(0x000A /n)

 垂直制表符(0x000B)

 换页(0x000C)

 回车符(0x000D /r)

 空格符(0x0020),英文下ASCII扩充的UNICODE空格、

 空格符(0xA1A1)UTF-8GB2312或其他网页制式中的空格、

 空格符(0x3000),中文下UNICODE空格。

在进行细化处理时显得很重要。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值