Basic4PPC怎么从文本文件读取和保存中文信息?

jeffrey8227

Member
Licensed User
Longtime User
你将要读取的文本文件“另存为”——“编码”——选择“utf-8”

这样就可以成功读取中文的文本文件了


读取文本文件的代码是:

Sub Globals
'Declare the global variables here.

End Sub

Sub App_Start
Form1.Show
FileOpen(c,"text.txt",cRead)
TextBox1.Text = FileReadToEnd(c)
FileClose(c)
End Sub
 

redsuntv

Member
我也遇到这个问题。希望读出的中文能显示在一个文本框里, 但遇到中文都就问号(?)。
谁知道如何解决?
 

luby

Member
你将要读取的文本文件“另存为”——“编码”——选择“utf-8”

这样就可以成功读取中文的文本文件了


读取文本文件的代码是:

Sub Globals
'Declare the global variables here.

End Sub

Sub App_Start
Form1.Show
FileOpen(c,"text.txt",cRead)
TextBox1.Text = FileReadToEnd(c)
FileClose(c)
End Sub

你说的另存为,是指要先将文本文件手工处理吗?可以不处理直接读出中文吗?
 

jeffrey8227

Member
Licensed User
Longtime User
你说的另存为,是指要先将文本文件手工处理吗?可以不处理直接读出中文吗?

你在创建这个文本文件的时候,不要保存为ANSI,直接保存为UTF-8就可以了

不单单是WM,移动设备基本上都是只认UTF-8编码,WM上少部分程序可以认ANSI,不过B4P不支持
 

luby

Member
你在创建这个文本文件的时候,不要保存为ANSI,直接保存为UTF-8就可以了

不单单是WM,移动设备基本上都是只认UTF-8编码,WM上少部分程序可以认ANSI,不过B4P不支持

JEFFREY,你好!
谢谢你的及时回复:)
我算是个新手了,只是对这个感兴趣.
你提示的创建这个文件用UTF-8模式,我暂时还灭有找到好办法,我这个文件是这段代码创建的:
'RESPONSE ,REQUEST 为HTTP的OBJECT, READER,WRITER为BINNARY的OBJECT

Sub DownloadFile (LocalFile,URL)
Response.New1
Request.New1(URL)
Response.Value = Request.GetResponse
Msgbox("Download size: " & Response.ContentLength)
Reader.New1(Response.GetStream,True)
FileOpen(c1,LocalFile,cRandom)
Writer.New1(c1,False)
Dim buffer(4096) As byte
count = Reader.ReadBytes(buffer(),4096)
Do While count > 0
Writer.WriteBytes2(buffer(),0,count)
count = Reader.ReadBytes(buffer(),4096)
Loop
FileClose(c1)
Response.Close
Msgbox("File saved.")
End Sub
============
我暂时无法知道怎么用UTF-8的格式来写这个LOCALFILE

不过我今天早晨起来不甘心,寻找了一个笨办法来解决这个读乱码的问题:


Bitwise.New2(00936) '将BITWISE初始化为中文简体字符集的CodePage Encoding
FileOpen(c1,"Newtxt.txt",cRandom) '打开文件
reader.New1(c1,True) '读文件
length = reader.ReadBytes(buffer(), 4096) '读出的文件长度
string=bitwise.BytesToString(buffer(),0,length) '将读出的文件BYTES按照BITWISE的初始化代码转换字符集
Msgbox(string)
FileClose(c1)
===========
需要引入一个BITWISE的OBJECT,由它来将读出来的文件的BYTES转换为00936也就是简体中文的字符集,运行结果总算通过.但是显得很别扭和笨拙:)
 
Top