文件编码从ANSI到CP852 / IBM852的转换

时间:2014-11-12 08:28:26

标签: vb6

我需要使用VB6将带有ANSI编码的文件转换为IBM852 / CP852,这是我到目前为止所做的。

Sub ConvertEncoding(ByVal InCharSet, ByVal OutCharSet, ByVal strInFileName As String, Optional strOutFileName As String = vbNullString)
    Dim objInputStream, objOutputStream As Object

    If IsCharset(InCharSet) And IsCharset(OutCharSet) Then
        Set objInputStream = CreateObject("ADODB.Stream")
        Set objOutputStream = CreateObject("ADODB.Stream")

        With objInputStream
            .Open
            .Type = adTypeBinary
            .LoadFromFile strInFileName
            .Type = adTypeText
            .Charset = InCharSet
            intWritePosition = 0
            objOutputStream.Open
            objOutputStream.Charset = OutCharSet
            Do While .EOS <> True
                strText = .ReadText(adReadLine)
                objOutputStream.WriteText strText, adWriteChar
            Loop
            .Close
        End With
        objOutputStream.SaveToFile IIf(strOutFileName = vbNullString, strInFileName, strOutFileName), adSaveCreateOverWrite
        objOutputStream.Close
    End If
End Sub

当我执行它时,上面的代码能够从PC默认转换为UTF-8,Unicode但是当我尝试将其转换为IBM852 / CP852时,它仍然是ANSI编码。

任何人都可以告诉我它有什么问题,BTW代码也来自这里,只是修改了它。

0 个答案:

没有答案