关于字符串汉字编码的判断

首先,这个问题不严谨了,如果给定一个任意字符串,不可能断定它是否包含汉字,只有知道其编码方式才可能判断,比如已知为UTF-16,可根据UNICODE标准汉字代码点范围判断,如果是ANSI本地化编码如GB2312(1980):双字节最高位为1, 范围:1:[0xA1-0xFE],2:[0xA1-0xFE],7445个字符,汉字范围:1:[0xB0-0xF7],2:[0xA1-0xFE]。
    其次,GB2312,GBK,GB18030这些汉字编码方式都是字节流,像utf-8一样不存在字节序的问题,和x86等平台架构无关,如果是UTF-16和UTF-32才要考虑这个问题。

 

对于GBK和GB2312的编码方式汉字编码用两个字节表示,特点是第一个字节的最高位为1

X86平台采用little-endian 故高字节在高位。

 

如下代码将输入的中文与英文混合字符串中的英文中的大写字母改为小写字母。

简单的判定方法,不够准确,只适用于GB系列和BIG5系列编码

 

更多细节待续

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值