最近脑子一热,又去看Locale了

深入探索Locale与字符编码转换
本文探讨了在VC8中CRT源代码里的locale及字符编码转换机制,详细解析了face_t::codecvt流程,并讨论了操作系统的底层支持。文章还提到了MBtoWC和WCtoMB函数的应用。

曾让我郁闷的东西我总是想解决,Locale也算其一。

搞明白Locale要面对很多问题,CodePage、CharSet等概念这就不消说了,其它的还要搞懂一大堆,比如Category之类的。头昏那个脑胀,天昏那个地暗。

前天看了看VC8:CRT的Src,终于搞明白了face_t::codecvt的大致流程,中间也有一些问题,隐隐约约感觉到操作系统作了一些我们所不知的事情,还有一些高不太明白地事情,要在以后慢慢看了。

locale使用前都会创建一个Locale对象,传进去的那个值,将会被用于构建一个Locale来。而在Convert前,这个Locale将会调用CRT的setlocale以进行Locale变换。

最后的CodeConvert本身是很简单的——就是调用了Win32的MBtoWC和WCtoMB那两个函数。写得很经典,有时间再好好看看。希望能尽快形成文档,整理一下思路~~

Codecvt只是Locale的一个方面,还有无数的Locale和自定义Locale需要去看看,祝我好运吧~ ^_^

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值