笔记:Windows Code Page
Windows Code Page相关函数
| EnumSystemCodePages | Enumerates the code pages that are either installed on or supported by a system. |
| GetACP | Retrieves the current ANSI code page identifier for the operating system. |
| GetCPInfo | Retrieves information about any valid installed or available code page. |
| GetCPInfoEx | Retrieves information about any valid installed or available code page. |
| GetOEMCP | Retrieves the current original equipment manufacturer (OEM) code page identifier for the |
| IsValidCodePage | Determines if a specified code page is valid. |
Windows Code Page及其对应命名(中文部份、出处)
| Descriptive Title | Windows Code Page |
|---|---|
| Charset names (preferred name in bold) | |
| CESU-8 | |
| CESU-8, csCESU-8 | |
| Chinese National Standard (GB18030) | 54936 |
| GB18030, ISO-4873:1986 | |
| Chinese Simplified (EUC) | 51936 |
| EUC-CN, x-euc-cn | |
| Chinese Simplified (GB2312) | 936 |
| gb2312, chinese, CN-GB, csGB2312, csGB231280, csISO58GB231280, GB_2312-80, GB231280, GB2312-80, GBK, iso-ir-58, CP936, MS936, windows-936 | |
| Chinese Simplified (GB2312-80) | 20936 |
| x-cp20936 | |
| Chinese Simplified (HZ) | 52936 |
| hz-gb-2312 | |
| Chinese Simplified (ISO 2022) | 50227 |
| x-cp50227 | |
| Chinese Simplified (Mac) | 10008 |
| x-mac-chinesesimp | |
| Chinese Traditional (Big5) | 950 |
| big5, cn-big5, csbig5, x-x-big5, CP950, Big5-HKSCS | |
| Chinese Traditional (CNS) | 20000 |
| x-Chinese-CNS, x-Chinese_CNS | |
| Chinese Traditional (Eten) | 20002 |
| x-Chinese-Eten, x_Chinese-Eten | |
| Chinese Traditional (Mac) | 10002 |
| x-mac-chinesetrad | |
Windows 8已经起航!
一段新闻
以下是一段关于Windows 8的新闻:
在Vista发布两年多后,微软终于向我们展示了下一代操作系统Windows 7,据悉,4月10日微软就会发布Windows 7 RC版本,那么Windows 7的下一代操作系统(暂且称之为Windows 8)处于什么阶段呢?
关于这个问题,微软Windows Server团队高级项目主管Soni Meinke接受了相关采访,虽然并未透露过多细节,但是她表示下下一代Windows操作系统已经进入了计划编制阶段,而她的工作就是和不同的客户及合作伙伴进行沟通,与他们探讨该计划和策略.
Meinke说:“我一直在积极参与Windows 8早期阶段的策划,主要是和客户进行沟通,我们基本上是直接面见客户,深入地了解他们对Windows服务器今后的需求,Windows 8的具体开发日期还不确定,目前大部分的精力仍然放在Windows 7上.在Windows 7的开发周期中我们始终在听取合作伙伴的意见,而且我们希望将这一策略纳入Windows 8的早期规划中.”
她补充说,“TAP(Technology Adoption Program)团队和Windows Server客户咨询团队也是我们这一组的成员.”虽然微软目前并没有公布任何关于其下下一代Windows服务器和操作系统的细节,不过很高兴看到他们已经开始了它的筹划工作,看起来,微软从Vista的失利中吸取的经验为其后版本操作系统的开发起到了一定的指导作用.
两张图片
除了这段新闻,还没有找到更多新资料。
不过,偶尔发现一篇老文里有两张图,或许有点意思:
图一、Windows Server Enterprise Roadmap
图二、Windows Server Roadmap
一点期待
呵呵,不管7也好,8也好,大家用着好,才是真的好!
让Expat支持GBK
Expat是什么?
由第一届XML CUP获得者James Clark贡献的、鼎鼎大名的Expat XML解析器,基于SAX模型、解析效率极高。被众多知名软件用作XML解析模块。Expat自身以c代码的形式提供,但已有perl、python等多种移植版本。在很多系统中甚至成为了标配类库。
Expat与GBK
Expat内建支持UTF-8、UTF-16、大&小ASCII编码;很不幸,唯独不支持GBK编码。如果你需要使用Expat处理GBK编码XML的话,我有两点建议:
- 预先将GBK编码的XML文件转成Unicode文件;
- 利用Expat编码扩展机制进行扩展;
如果你选择第2种方案,执意要扩展Expat的话,也好办;参考以下步骤:
- 调用XML_SetUnknownEncodingHandler,声明处理UnknownEncoding事件;
- 实现UnknownEncoding事件处理程序;关键点为填充一个XML_Encoding结构;
- 实现GBK编码到Unicode的转换函数;
是的,就这么简单。
附录:
更新
- 20090327: expat源码包里有个demo: xmlwf,这个工程里已经演示了对于非内置编码的支持方式——有两个叫做codepage的文件,可以认真参考一下。
- 容我再啰嗦一句,出于性能考虑,我还是建议预先将GBK编码的XML文件或字符串先转成Unicode再进行处理。
Windows系统信息查看工具
大家都知道,在Office等软件的“关于/About”对话框中,都有个“系统信息”的按钮。
点一下试试,弹出一个新窗口,从其表现看应该是呼出了一个新进程:
这个工具初看起来没啥,细看也没啥。可是当你真的想了解系统信息的时候就有用了。另外,“系统信息”程序的“工具”菜单栏下还集成了其它几个工具的入口,方便使用。
那么,除了点击Office的工具栏之后,还有单独的启动方法么?如果我也想在自己的程序中加这么个“系统信息”按钮该怎么去实现呢?
再次祭出Process Monitor工具,很快便看到一条CreateProcess事件:
原来就在这里:
C:\Program Files\Common Files\Microsoft Shared\MSInfo\MSinfo32.exe