Гость
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Конвертировать из UTF-8 в нормальный вид / 5 сообщений из 5, страница 1 из 1
16.09.2014, 09:34
    #38747467
Taranaga
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертировать из UTF-8 в нормальный вид
Вчера искал конвертор чтобы переводить кракозябры и иероглифы в нормальный вид. Не нашел, набросал свой.
Делюсь - ибо настроение сегодня хорошее :)
Может даст кому пару часов экономии: 110 минут на безуспешном поиске и 10 минут на написании.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
Public Function ConvertFromUTF8R(StringForConvert As String)
Dim Str As String
Str = StringForConvert
Str = Replace(Str, "ю", "ю")
Str = Replace(Str, "п", "п")
Str = Replace(Str, "Ю", "Ю")
Str = Replace(Str, "П", "П")
Str = Replace(Str, "а", "а")
Str = Replace(Str, "я", "я")
Str = Replace(Str, "А", "А")
Str = Replace(Str, "Я", "Я")
Str = Replace(Str, "б", "б")
Str = Replace(Str, "р", "р")
Str = Replace(Str, "Б", "Б")
Str = Replace(Str, "Р", "Р")
Str = Replace(Str, "ё", "ё")
Str = Replace(Str, "Ё", "Ё")
Str = Replace(Str, "ц", "ц")
Str = Replace(Str, "с", "с")
Str = Replace(Str, "Ц", "Ц")
Str = Replace(Str, "С", "С")
Str = Replace(Str, "д", "д")
Str = Replace(Str, "т", "т")
Str = Replace(Str, "Д", "Д")
Str = Replace(Str, "Т", "Т")
Str = Replace(Str, "е", "е")
Str = Replace(Str, "у", "у")
Str = Replace(Str, "Е", "Е")
Str = Replace(Str, "У", "У")
Str = Replace(Str, "ф", "ф")
Str = Replace(Str, "ж", "ж")
Str = Replace(Str, "Ф", "Ф")
Str = Replace(Str, "Ж", "Ж")
Str = Replace(Str, "г", "г")
Str = Replace(Str, "в", "в")
Str = Replace(Str, "Г", "Г")
Str = Replace(Str, "В", "В")
Str = Replace(Str, "х", "х")
Str = Replace(Str, "ь", "ь")
Str = Replace(Str, "Х", "Х")
Str = Replace(Str, "Ь", "Ь")
Str = Replace(Str, "и", "и")
Str = Replace(Str, "ы", "ы")
Str = Replace(Str, "И", "И")
Str = Replace(Str, "Ы", "Ы")
Str = Replace(Str, " ", "")
Str = Replace(Str, "й", "й")
Str = Replace(Str, "з", "з")
Str = Replace(Str, "Й", "Й")
Str = Replace(Str, "З", "З")
Str = Replace(Str, "к", "к")
Str = Replace(Str, "ш", "ш")
Str = Replace(Str, "К", "К")
Str = Replace(Str, "Ш", "Ш")
Str = Replace(Str, "°", "°")
Str = Replace(Str, "л", "л")
Str = Replace(Str, "э", "э")
Str = Replace(Str, "Л", "Л")
Str = Replace(Str, "Э", "Э")
Str = Replace(Str, "м", "м")
Str = Replace(Str, "щ", "щ")
Str = Replace(Str, "М", "М")
Str = Replace(Str, "Щ", "Щ")
Str = Replace(Str, "·", "·")
Str = Replace(Str, "н", "н")
Str = Replace(Str, "ч", "ч")
Str = Replace(Str, "Н", "Н")
Str = Replace(Str, "Ч", "Ч")
Str = Replace(Str, "©", "©")
Str = Replace(Str, "о", "о")
Str = Replace(Str, "ъ", "ъ")
Str = Replace(Str, "О", "О")
Str = Replace(Str, "Ъ", "Ъ")
ConvertFromUTF8R = Str
End Function



#UTF-8 #KOI-8R #EXCEL #VBA #КРАКОЗЯБРЫ #ИЕРОГЛИФЫ
...
Рейтинг: 0 / 0
16.09.2014, 11:25
    #38747595
f
f
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертировать из UTF-8 в нормальный вид
Libre нормально открывает UTF-8.
...
Рейтинг: 0 / 0
17.09.2014, 06:14
    #38748655
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертировать из UTF-8 в нормальный вид
Насколько я помню, это все уже придумано до нас :
ChangeTextCharset
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Function ChangeTextCharset(ByVal txt$, ByVal DestCharset$, _
                            Optional ByVal SourceCharset$) As String
    ' функция перекодировки (смены кодировки) текстовой строки
    ' В качестве параметров функция получает текстовую строку txt$,
    ' и название кодировки DestCharset$ (в которую будет переведён текст)
    ' Функция возвращает текст в новой кодировке
    On Error Resume Next: Err.Clear
     With CreateObject("ADODB.Stream")
         .Type = 2: .Mode = 3
         If Len(SourceCharset$) Then .Charset = SourceCharset$    ' указываем исходную кодировку
        .Open
         .WriteText txt$
         .Position = 0
         .Charset = DestCharset$    ' назначаем новую кодировку
        ChangeTextCharset = .ReadText
         .Close
     End With
End Function


Пример:
Код: vbnet
1.
ChangeTextCharset("РџРѕРјРёРґРѕСЂ", "utf-8", "Windows-1251")
...
Рейтинг: 0 / 0
17.09.2014, 06:18
    #38748656
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертировать из UTF-8 в нормальный вид
AndreTMПример:Извиняюсь, конечно же,
Код: vbnet
1.
ChangeTextCharset("РџРѕРјРёРґРѕСЂ", "Windows-1251", "utf-8")
...
Рейтинг: 0 / 0
26.09.2014, 14:17
    #38758917
exp98
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конвертировать из UTF-8 в нормальный вид
Ну, или если не в офисе под Вин-7, то в ноутпаде можно: сэйв эс и там указать utf-8 или вин-1251. Правда для utf-8 он добавляет 3 спец. байта в начало файла. Я их потом удалял, если нужно, в редакторе pspad.
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Конвертировать из UTF-8 в нормальный вид / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]