易语言的使用中,不可避免的需要转换文本的编码,众所周知,大家都用这两个API:
MultiByteToWideChar
WideCharToMultiByte
但是,这两个API稍微不对就得叫你的程序完蛋!!!
昨晚又仔细参考的MSDN文档,有两个关键字非常需要注意:
字符
字节
是的,字符和字节,一个参数指定的是缓冲区字符数,一个是缓冲区字节数。
所以,这次我直接根据编码的最大可能字节数来手动计算缓冲区大小。
例如:UTF8,一个字符最多使用6个字节,转换时缓冲区大小就设为字符数的6倍大小字节空间。
安全的做法是直接申请足够大的空间来进行转换,所以重新封装了一下编码转换!
请尽量在XP系统并且多线程环境下测试,有问题欢迎联系反馈!
18382832584[下载].rar
|