Unicode в контролах VB6.0

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
S_V_S
проходил мимо
Сообщения: 1
Зарегистрирован: 2009-02-22 13:32:30

Unicode в контролах VB6.0

Непрочитанное сообщение S_V_S » 2009-02-22 15:32:51

Кто знает, посоветуйте!

Как вставить текст в кодировке 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


Поставил в файле source_unicode.txt первым символом "а" с умляутом;
Первый Msgbox мне выдал "97" ("а"), а второй - "228" ("а" с умляутом)

То есть в памяти VB хранит как и надо, в Юникоде, а вот в Textbox вставляет простые буквы a и o, без умляутов, то есть преобразовывает их в ANSI.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 34924
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Unicode в контролах VB6.0

Непрочитанное сообщение Alex Keda » 2009-02-27 0:15:20

венда - дело тёмное...
Убей их всех! Бог потом рассортирует...

zg
полковник
Сообщения: 5843
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Unicode в контролах VB6.0

Непрочитанное сообщение zg » 2009-03-01 22:28:52

S_V_S писал(а):То есть в памяти VB хранит как и надо, в Юникоде, а вот в Textbox вставляет простые буквы a и o, без умляутов, то есть преобразовывает их в ANSI.
угу, так и есть, он их конвертит почём зря

S_V_S писал(а):Осталась проблема вывода этих символов на контрол формы VB6.0 (Listbox и Textbox).
в плане? чего нужно в итоге?


Вернуться в «Visual Basic»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость