于UTF-8的字符集文件的转换对于VB的使用者来说的确是件困难的事情,后来在网上找到一篇用ADODB转换UTF-8的文章(具体网址本人记不清了,但是是要非常的感谢愿作者。),本人原希望能用API来解决这个问题,但是效果实在是无法启齿。现在就用ADODB的方法来实现。

  ADODB被封装到微软的Microsoft Data Access Components (MDAC)的安装包中,我想现在的系统越来越庞大了,ADODB基本已经成了系统的必带数据接口了,如果没有的话那只能去http://www.microsoft.com/downloads/results.aspx?productid=&freetext=mdac&displaylang=en下载了。

  将UTF-8转换为ANSI,首先先在VB中引用Microsoft ActiveX Data Objects 2.5 Library对象,最低也要2.5版本的,再低就不支持Stream对象了。

  代码如下:

  1. Dim loadStream As ADODB.Stream  
  2. Dim saveStream As ADODB.Stream  
  3.  
  4. Set loadStream = New ADODB.Stream  
  5. Set saveStream = New ADODB.Stream  
  6.  
  7. With saveStream  
  8.     .Mode = 8  
  9.     .Open  
  10.     .Charset = "chinese"  '设置保存文件的字符集类别,如果是中文用户建议使用“chinese”  
  11.                           '当然如果用“ascii”也可以的,但中文就...  
  12.                           '字符集的类别见本站《字符集(Charset)的查询和使用》文章。  
  13.         With loadStream  
  14.             .Open  
  15.             .Charset = "utf-8" '设置读取文件的字符集,缺省为“unicode”  
  16.             .LoadFromFile "c:\UTF-8.txt" '对文件名似乎要区分大小写,请注意了!  
  17.             .CopyTo saveStream  
  18.             .Close  
  19.         End With 
  20.     .SaveToFile "c:\ANSI.txt" '无法判断制定目录中是否有该文件,而且也无法覆盖  
  21.                               '只能写一个新文件,清注意!  
  22.     .Close  
  23. End With 
  24.  
  25. Set loadStream = Nothing 
  26. Set saveStream = Nothing 
  27.  
  28. End 

  以上是UTF-8转换ANSI的方法,如果你要逆向转换,只需要修改一下字符集即可,只要你能在字符集中找到的类型基本都可以互相转换的,还要注意一点最好在转换前做一下字符集类型的判断。


本日志由 Huan.Zuo 于 2008-03-02 21:07:05 发表到 技术备忘 中,目前已经被浏览 1590 次,评论 0 次;

作者添加了以下标签: UFTF-8ANSI字符集互相转换

Processed in 0.156 second(s)