|
Strings in Visual Basic 6.0 - Reading Text FilesVisual Basic 6.0 expects ANSI character data when reading text files. This example demonstrates what you'll get if the text file uses a different encoding, such as utf-8. Here's the test source code. One file contains the letter É in ANSI (a single byte), the other contains the same letter É, but in utf-8 (two bytes).
Function ReadTextFileContents(filename As String) As String
Dim fnum As Integer
fnum = FreeFile()
Open filename For Input As #fnum
ReadTextFileContents = Input(LOF(fnum), fnum)
Close #fnum
End Function
Private Sub Command3_Click()
Text1.Text = ReadTextFileContents("É_ansi.txt")
Text2.Text = ReadTextFileContents("É_utf8.txt")
End Sub
The result looks like this:
What happened with the utf-8?The answer is that the É in utf-8 is two bytes. VB6 interpreted each byte as a separate ANSI character. É is 0xc3 0x89 in utf-8. If these two bytes are interpreted as ANSI, then 0xC3 = Ã, and 0x89 = ‰ (but the default font was not able to render this character properly). |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved. ..