曾让我郁闷的东西我总是想解决,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需要去看看,祝我好运吧~ ^_^
深入探索Locale与字符编码转换
本文探讨了在VC8中CRT源代码里的locale及字符编码转换机制,详细解析了face_t::codecvt流程,并讨论了操作系统的底层支持。文章还提到了MBtoWC和WCtoMB函数的应用。
1747

被折叠的 条评论
为什么被折叠?



