?

Log in

No account? Create an account

June 5th, 2007

fedora 蓝色小药丸

wstream 真有名堂

当初看 STL 有三分之一都是讲 locale 的,那本书看完了都云里雾里。刚才碰到了问题,搜索了一把。

http://www.codeproject.com/vcpp/stl/upgradingstlappstounicode.asp

locale 分成不同的 facet,可以构建自己的 locale。用 ws.imbue(loc) 设置一个流的 locale。如果要将字符串转码,或者防止被错误地转码,就应当设置 locale 先。

防止被错误地转码,比如在保存文件时,wofstream 默认是把字符转成单字节的,要是遇到没法转的字符就停掉了。据说要换用一个不做任何转换的 facet 才可以保存原样的信息。

看到一段用来转换 UCS4 和 UTF-8 的代码,说 Boost 里面提供了各种各样的 facet。
Tags: