Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум на Исходниках.RU > Visual Basic: Общие вопросы > Отображение UTF-8 в TextBox |
Автор: salieri 31.05.19, 10:09 |
Здравствуйте! Есть TXT-файл с диакритическими знаками в UTF-8, при попытке вывести их в TextBox, появляются знаки вопроса. Пробовал Ричтекстбокс, тоже самое. Полночи просидел в интернете, пытался найти решение, так толком не нашёл ничего. Подскажите, пожалуйста, как быть. <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> Dim barBuffer() As Byte Dim sarLines() As String Dim lngCounter As Long Dim strText As String Open App.Path & "\msg.txt" For Binary Access Read As #1 ReDim barBuffer(FileLen(App.Path & "\msg.txt") - 1) Get #1, , barBuffer Close #1 If (barBuffer(0) = &HEF And barBuffer(1) = &HBB And barBuffer(2) = &HBF) Then strText = Mid(barBuffer, 3) Else strText = barBuffer End If sarLines = Split(strText, vbNewLine) For lngCounter = LBound(sarLines) To UBound(sarLines) barBuffer = sarLines(lngCounter) & vbNewLine txtmsg.Text = barBuffer Next lngCounter |
Автор: salieri 31.05.19, 15:29 |
Ребят, мне тут подсказали такую вещь: "Проблема в том,что VB делает двойное преобразование кодировки.Первая зависит от системных настроек,а вторая в свою. Где-то читал уже точно не помню.Выход предлагался: записывать из буфера в массив,тогда таких преобразований не происходит.Я не проверял, по этому ничего не скажу." Что скажете по этому поводу? Добавлено Ещё есть такой вариант рабочий (проверял!): <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> RichTextBox.LoadFile App.Path & "\msg.txt" но у RichTextBox не настраивается цвет шрифта, поэтому этот метод не совсем хорош. |
Автор: salieri 31.05.19, 18:23 |
Дали ссылку на юникод-аналоги контролов: http://www.vbforums.com/showthread.php?698...ommon-controls) без бутылки не компилируется их проект надо разбираться, что там ему не хватает |
Автор: Alexanbar 05.06.19, 16:10 |
Выход - только в использовании контролов, поддерживающих юникод. можно попробовать использовать веб-браузер контрол или dhtmledit |