50分求“文本文件格式ANSI->UNICODE”
代码如下:
ansiFileNo = FreeFile()
Dim inputText As String
Dim inputTextUnicode As String
Open g_UserFile For Input As #ansiFileNo
unicodeFileNo = FreeFile()
Dim outputByte() As Byte
Open "temp.txt" For Output As #unicodeFileNo
Do While Not EOF(ansiFileNo)
Line Input #ansiFileNo, inputText
If Len(Trim(inputText)) = 0 Then
Exit Do
End If
ReDim outputByte(LenB(inputText) - 1)
inputTextUnicode = StrConv(StrConv(inputText, vbFromUnicode), vbUnicode)
'outputByte = inputTextUnicode
Print #unicodeFileNo, inputTextUnicode
Loop
Close ansiFileNo
Close unicodeFileNo
明明是把ANSI转换UNICODE,为什么用记事本打开,还是显示ANSI格式文本文件?
如果把循环换成
Put #unicodeFileNo, , StrConv("Hello", vbUnicode)
Put #unicodeFileNo, , StrConv("Hello", vbUnicode)
Put #unicodeFileNo, , StrConv("Hello", vbUnicode)
Put #unicodeFileNo, , StrConv("Hello", vbUnicode)
Put #unicodeFileNo, , StrConv("Hello", vbUnicode)
用记事本打开,显示UNICODE格式文本文件。
提问的问题没有回答,解决后两个帖子一起给分!
http://community.csdn.net/Expert/TopicView.asp?id=4180903
问题点数:50、回复次数:4Top
1 楼eslbs(书林跋涉)回复于 2005-08-02 00:01:01 得分 0
写完整一点就是下面这样
ansiFileNo = FreeFile()
Dim inputText As String
Dim inputTextUnicode As String
Open g_UserFile For Input As #ansiFileNo
unicodeFileNo = FreeFile()
Dim outputByte() As Byte
Open App.Path & "\temp.txt" For Binary As #unicodeFileNo
inputText = InputB$(LOF(1), #ansiFileNo)
inputTextUnicode = StrConv(inputText, vbUnicode)
outputByte = inputTextUnicode
Put #unicodeFileNo, , outputByte()
Close ansiFileNo
Close unicodeFileNoTop
2 楼eslbs(书林跋涉)回复于 2005-08-02 00:06:05 得分 50
Open g_UserFile For Input As #1
Open App.Path & "\temp.txt" For Binary As #2
Put #2, ,StrConv(InputB$(LOF(1), #1), vbUnicode)
Close #1
Close #2
不知道这个代码行不行,没有测试……Top
3 楼eslbs(书林跋涉)回复于 2005-08-02 00:20:06 得分 0
改好了
Dim outputbyte() As Byte
Open g_UserFile For Input As #1
Open App.Path & "\temp.txt" For Binary As #2
outputbyte = StrConv(InputB$(LOF(1), #1), vbUnicode)
Put #2, , outputbyte
Close #1
Close #2
Top
4 楼lhj0532(klinsmann)回复于 2005-08-02 09:05:19 得分 0
楼上的兄弟:
好像不行,用记事本打开还是ANSI的阿,编码方式肯定是变了,不过变成乱码了。Top




