欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

使用adodb.stream进行编码转换部分字符有有关问题

更新时间: 2014-01-05 00:56:57 责任编辑: Author_N1

 

使用adodb.stream进行编码转换部分字符有问题
我想要将一个UTF-8编码的文本转换成GBK格式,使用下面的两个函数进行转换
content = binToStr(strToBin(str,"UTF-8") ,"GBK")

    Function strToBin(strInput, strCharset)
        Set stream = CreateObject("ADODB.Stream")
        stream.Type = 2 'adTypeText
        stream.Charset = strCharset
        stream.Open
        stream.WriteText strInput
        stream.Position = 0
        stream.Type = 1 'adTypeBinary
        strToBin = stream.Read()
        stream.Close
    End Function
    
    
    Function binToStr(strInput, strCharset)
        Set stream = CreateObject("ADODB.Stream")
        stream.Type = 1
        stream.Open
        stream.Write strInput
        stream.Position = 0
        stream.Type = 2
        stream.Charset = strCharset
        binToStr = stream.ReadText
        stream.Close
        Set stream = Nothing
    End Function


结果转换出来的字符中部分中文正常,部分中文后如果跟着.的话就会变成?号不识别

例如
检.rar  --> 检.rar
查.rar  --> ??rar
测.rar  --> ??rar

请问这是什么原因呢

--参考方法--
http://blog.tjz3.com/2011/01/24/406.html

作为基础小知识,网上很多就直接复制了!
/// <summary> 
 /// 编码的代码 
 /// </summary> 
 /// <param name="value">需要转换的字符串</param> 
 /// <returns>返回转换后的字符串</returns> 
 public string EnCodeCovert(string value) 
 { 
 System.Text.Encoding srcEncode = System.Text.Encoding.GetEncoding("utf-8"); 
 System.Text.Encoding convToEncode = System.Text.Encoding.GetEncoding("GBK"); 
 byte[] bytes = srcEncode.GetBytes(value); 
 System.Text.Encoding.Convert(srcEncode, convToEncode, bytes, 0, bytes.Length); 
 return convToEncode.GetString(bytes); 
 } 
--参考方法--
引用:
这个链接里说的好像不是我的问题吧。


他用的是.net,其实asp里面也可以用.net的部分类库
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 00:56:57
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/1739/
本文WWW.DOC100.NET DOC100.NET版权所有。