问题: 从图层数据文件中能读出中文字段值,但是一旦写入自定义文本文件中,保存下来的的却是乱字符。 回答: Sub Write2TXTFile
Dim objFile
Set objFile=Application.CreateAppObject("file")
objFile.Open "c:Test.txt",2, -1
'objFile.WriteLine("这样当然有问题!")
WritelineUnicode objFile,"这样就不成问题了:)"
objFile.Close
End Sub
Function WritelineUnicode(objfile, UniString)
If objfile.LOF = 0 Then
objfile.writeByte(&hff)
objfile.writeByte(&hfe)
End If
Dim w1, w2, w3
Dim cnt, i
cnt = Len(UniString)
i =1
For i = 1 To cnt
w1 = Mid(UniString, i, 1)
w2 = Ascw(w1)
w3 = Hex(w2)
objfile.writeByte("&H" & right(w3,2))
If len(w3) > 2 Then
objfile.writeByte("&H" & left(w3,2))
Else
objfile.writeByte(0)
End If
Next
objfile.writeByte(13)
objfile.writeByte(0)
objfile.writeByte(10)
objfile.writeByte(0)
End Function
1 个回复
易智瑞技术支持
赞同来自:
回答: Sub Write2TXTFile
Dim objFile
Set objFile=Application.CreateAppObject("file")
objFile.Open "c:Test.txt",2, -1
'objFile.WriteLine("这样当然有问题!")
WritelineUnicode objFile,"这样就不成问题了:)"
objFile.Close
End Sub
Function WritelineUnicode(objfile, UniString)
If objfile.LOF = 0 Then
objfile.writeByte(&hff)
objfile.writeByte(&hfe)
End If
Dim w1, w2, w3
Dim cnt, i
cnt = Len(UniString)
i =1
For i = 1 To cnt
w1 = Mid(UniString, i, 1)
w2 = Ascw(w1)
w3 = Hex(w2)
objfile.writeByte("&H" & right(w3,2))
If len(w3) > 2 Then
objfile.writeByte("&H" & left(w3,2))
Else
objfile.writeByte(0)
End If
Next
objfile.writeByte(13)
objfile.writeByte(0)
objfile.writeByte(10)
objfile.writeByte(0)
End Function
创建时间:2005-12-12
最近更新:2005-12-12
【原文链接】
http://support.esrichina.com.cn/2005/1212/151.html
要回复问题请先登录或注册