代码改变世界

VB6中实现UTF-8编码解码

2004-07-18 13:48  灵感之源  阅读(7471)  评论(11编辑  收藏  举报
在几年前,为了解经过UTF-8编码过的文字,我找了很多地方都没有找到,一直耿耿于怀。最近重新用快要进入博物馆的VB6写MS Office同步器,跟ASP.NET进行交互,遇到了经过UTF-8编码过的文字,这个时候不能不好好解决这个问题了。

所以我在网络上搜索,看见纯vb6写的eXML(XML解析器,自称能进行UTF-8编码和解码),可惜尝试后不行。

再继续搜索,发现了MichKa写的UTF-8_Encode Decode,效果正是我想要的。可惜他添加了太多用不上的内容,特别是他引用了MS Office API,大大增加了依赖性。

经过我的处理,把对MS Office API的依赖去掉了,大小为原来的1/2,并且添加了对URL编码的解码处理,封装成Class,如在google搜索“测试”,你会发现经过编码的关键字是“%E6%B5%8B%E8%AF%95”,我写的函数就能直接解这个编码。

关键的实现是调用MultiByteToWideChar和WideCharToMultiByte API,具体参考代码。

这里是打包下载:UTF8Class