当前位置:编程学习 > VB >>

VB 文件编码转换

使用VB6.0输出得到的文件的编码格式都是ANSI的,现在我想获得UTF-8编码格式的文件,我应当怎么做才能使VB输出UTF-8编码格式的文件。(因为有大批量的文件要进行编码格式的转换,使用记事本一个个地转很累,而用从网上下载下来的软件来转出的文件程序又提示识别不了的编码格式,所以想到了使VB直接输出UTF-8格式的文件)
追问:不行啊,那个文件是空的,里面什么也没有
答案:Function U2UTF8(ByVal a_iNum)
        Dim sResult, sUTF8
        Dim iTemp, iHexNum, i

        iHexNum = Trim(a_iNum)

        If iHexNum = "" Then
            Exit Function
        End If

        sResult = ""

        If (iHexNum < 128) Then
            sResult = sResult & iHexNum
        ElseIf (iHexNum < 2048) Then
            sResult = ChrB(&H80 + (iHexNum And &H3F))
            iHexNum = iHexNum \ &H40
            sResult = ChrB(&HC0 + (iHexNum And &H1F)) & sResult
        ElseIf (iHexNum < 65536) Then
            sResult = ChrB(&H80 + (iHexNum And &H3F))
            iHexNum = iHexNum \ &H40
            sResult = ChrB(&H80 + (iHexNum And &H3F)) & sResult
            iHexNum = iHexNum \ &H40
            sResult = ChrB(&HE0 + (iHexNum And &HF)) & sResult
        End If

        U2UTF8 = sResult
End Function

Function GB2UTF(ByVal a_sStr)
        Dim sGB, sResult, sTemp
        Dim iLen, iUnicode, iTemp, i

        sGB = Trim(a_sStr)
        iLen = Len(sGB)
        For i = 1 To iLen
             sTemp = Mid(sGB, i, 1)
             iTemp = Asc(sTemp)

             If (iTemp > 127 Or iTemp < 0) Then
                 iUnicode = AscW(sTemp)
                 If iUnicode < 0 Then
                     iUnicode = iUnicode + 65536
                 End If
            Else
                iUnicode = iTemp
            End If

            sResult = sResult & U2UTF8(iUnicode)
        Next

        GB2UTF = sResult
End Function

Private Sub Form_Load()
Dim utf8()     As Byte
    utf8 = U2UTF8("hello")
   
    Open "d:\a.txt" For Binary As #1
  Put #1, , utf8
  Close #1
End Sub

这样即可!!

上一个:VB菜单栏在哪里?
下一个:VB 文件系统 方法

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,