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. ..