?Hola! no 是西班牙文
?Hola! no 保存成.txt 編碼為unicode ,測驗以下代碼 ,顯示 還是不正確!
Dim textBytes() As Byte, headBytes(2) As Byte
fn = App.Path & "\test.txt"
If Dir(fn) = "" Then
MsgBox "檔案不存在,請先單擊【寫入】按鈕生成“MyUnicode.txt”檔案。", vbInformation
Exit Sub
End If
Open fn For Binary As #1
Get #1, , headBytes() '讀取檔案頭。
Close #1
If headBytes(0) = 255 And headBytes(1) = 254 Then '是Unicode編碼。十六進制為:FF 、FE。
Open fn For Binary As #1
ReDim textBytes(LOF(1) - 2) '減去檔案頭占用的2個位元組。
Get #1, 3, textBytes() '第三個位元組起為文本內容。
Close #1
Text1.Text = textBytes() '在 VB 中字串是 UniCode 格式,所以Unicode碼直接賦值即可顯示文本內容。
RichTextBox1.Text = textBytes()
Else
MsgBox "非Unicode編碼,不予讀入,請單擊【寫入】按鈕。", vbInformation
End If
uj5u.com熱心網友回復:
沒記錯的話,第三個位元組應該索引是2吧Get #1, 3, textBytes() '第三個位元組起為文本內容。
uj5u.com熱心網友回復:
顯示為亂碼,只能說明你的控制元件不支持顯示Unicode字符!換成Microsoft Forms 2.0 Object Library的TextBox控制元件試試吧。uj5u.com熱心網友回復:
經測驗這段代碼在我的機器上完全正確。uj5u.com熱心網友回復:
測驗了你的西班牙文,亂碼,可能是控制元件太老了,不支持新的字符,有些字體也是不能正確顯示的。比如歐元字符,有些老程式是顯示不了的。
uj5u.com熱心網友回復:
像這個字符,如果你直接粘到vb的Exe中就是亂碼,那么你用任何方式去讀取檔案再顯示到text中,他也必然是亂碼的。我試了6、7種字體,也沒發現不亂碼。
粘到vc的exe中,倒是完全正常。
uj5u.com熱心網友回復:
糾正一下,后來驗證了,3確實是第3個位元組。
你這非GBK字符,不能在VB6及其自帶的ANSI版控制元件中正常顯示就很正常了。估計你用的WINDOWS也是中文系統。覺得樓主應該會VB.NET吧,你以后以UNICODE為重要內容的程式,直接用VB.NET寫就是了
uj5u.com熱心網友回復:
你把語言庫換掉試試。轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/105135.html
標籤:VB基礎類
上一篇:求助!用VB撰寫了一個簡單的打蒼蠅游戲,但是擊中個數上有問題
下一篇:webbrowser如何做到像ie那樣,網址變化了地址欄的內容就也變化?用status change和TitleChange好像都不對,網址一次變化會多次
