Как вставить текст в кодировке Unicode в контрол VB?
Имеется файл source_unicode.txt, в котором содержится текст в кодировке Unicode.
Проблему считывания корректных символов в память VB я уже решил.
Убедился в том, что символы хранятся в памяти VB правильно.
Осталась проблема вывода этих символов на контрол формы VB6.0 (Listbox и Textbox).
Символов всего два: это a и o с умляутами.
На всякий случай приведу код, считывающий этот самый текст:
Код: Выделить всё
Dim S As String
Dim F As Integer
Private Sub Form_Load()
S = LoadUnicodeFile(App.Path & "\source_unicode.txt", 1035)
Text1.Text = S
MsgBox AscW(Mid(Text1.Text, 1, 1))
MsgBox AscW(Mid(S, 1, 1))
End Sub
Public Function LoadUnicodeFile(FileName As String, Optional LocaleID As Long = 1035) As String
F = FreeFile
Open FileName For Binary Access Read As F
S = Space(LOF(F) - 2)
Seek #F, 3
Get #F, , S
Close #F
LoadUnicodeFile = StrConv(S, vbFromUnicode, LocaleID)
End Function
Первый Msgbox мне выдал "97" ("а"), а второй - "228" ("а" с умляутом)
То есть в памяти VB хранит как и надо, в Юникоде, а вот в Textbox вставляет простые буквы a и o, без умляутов, то есть преобразовывает их в ANSI.