VB 文件编码转换
使用VB6.0输出得到的文件的编码格式都是ANSI的,现在我想获得UTF-8编码格式的文件,我应当怎么做才能使VB输出UTF-8编码格式的文件。(因为有大批量的文件要进行编码格式的转换,使用记事本一个个地转很累,而用从网上下载下来的软件来转出的文件程序又提示识别不了的编码格式,所以想到了使VB直接输出UTF-8格式的文件)
追问:不行啊,那个文件是空的,里面什么也没有
使用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 文件系统 方法