Определение UTF-8

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
13GHOST
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 305
Зарегистрирован: 09.01.2004 (Пт) 12:48

Определение UTF-8

Сообщение 13GHOST » 03.03.2009 (Вт) 10:32

Вот столкнулся с такой проблемой. Надо определить кодировку текста является ли она UTF-8 для того чтобы узнать надо ее конвертировать или нет. как можно это определить?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Определение UTF-8

Сообщение alibek » 03.03.2009 (Вт) 10:52

По первым двум байтам файла.
Lasciate ogni speranza, voi ch'entrate.

13GHOST
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 305
Зарегистрирован: 09.01.2004 (Пт) 12:48

Re: Определение UTF-8

Сообщение 13GHOST » 03.03.2009 (Вт) 11:24

да у меня не файл,у меня данные по сети приходят в виде строки

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Определение UTF-8

Сообщение alibek » 03.03.2009 (Вт) 11:26

Тогда статистический анализ.
Lasciate ogni speranza, voi ch'entrate.

13GHOST
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 305
Зарегистрирован: 09.01.2004 (Пт) 12:48

Re: Определение UTF-8

Сообщение 13GHOST » 03.03.2009 (Вт) 12:26

а где нибудь алгоритм анализа есть?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Определение UTF-8

Сообщение alibek » 03.03.2009 (Вт) 13:27

Можешь взять несколько текстов, сохранить их в разных кодировках и самостоятельно составить таблицы распределений.
Lasciate ogni speranza, voi ch'entrate.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Re: Определение UTF-8

Сообщение tyomitch » 03.03.2009 (Вт) 14:07

IsTextUnicode
Изображение

13GHOST
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 305
Зарегистрирован: 09.01.2004 (Пт) 12:48

Re: Определение UTF-8

Сообщение 13GHOST » 03.03.2009 (Вт) 14:10

посомтрел код перевода текста в UTF-8 и примерно набросал фукнцию определения. Т е она перебирает все символы и если она встречает пару символом удовлетворяющих (побитно) символу в UTF-8 она возвращает true. Вот не знаю корректно ли это?
Код: Выделить всё
Public Function IsUTF8(ByVal Text As String) As Boolean
Dim i As Long
Dim lngChar As Long
For i = 1 To Len(Text)
    lngChar = Asc(Mid$(Text, i, 1))
    If (lngChar And &HC0) = &HC0 Then
        i = i + 1
        If i > Len(Text) Then Exit For
        lngChar = Asc(Mid$(Text, i, 1))
        If (lngChar And &HE0) = &H80 Then
            IsUTF8 = True
            Exit Function
        End If
    End If
Next i
IsUTF8 = False
End Function

13GHOST
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 305
Зарегистрирован: 09.01.2004 (Пт) 12:48

Re: Определение UTF-8

Сообщение 13GHOST » 03.03.2009 (Вт) 16:44

IsTextUnicode как то не понятно работает. Иногда работает иногда нет. Например говорит, что "йцвйцв" это не UTF-8


Вернуться в Visual Basic 1–6

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

Сейчас этот форум просматривают: Google-бот, Yandex-бот и гости: 35

    TopList