powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Конвертировать из UTF-8 в нормальный вид
5 сообщений из 5, страница 1 из 1
Конвертировать из UTF-8 в нормальный вид
    #38747467
Taranaga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вчера искал конвертор чтобы переводить кракозябры и иероглифы в нормальный вид. Не нашел, набросал свой.
Делюсь - ибо настроение сегодня хорошее :)
Может даст кому пару часов экономии: 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
Конвертировать из UTF-8 в нормальный вид
    #38747595
f
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Libre нормально открывает UTF-8.
...
Рейтинг: 0 / 0
Конвертировать из UTF-8 в нормальный вид
    #38748655
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько я помню, это все уже придумано до нас :
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
Конвертировать из UTF-8 в нормальный вид
    #38748656
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTMПример:Извиняюсь, конечно же,
Код: vbnet
1.
ChangeTextCharset("РџРѕРјРёРґРѕСЂ", "Windows-1251", "utf-8")
...
Рейтинг: 0 / 0
Конвертировать из UTF-8 в нормальный вид
    #38758917
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, или если не в офисе под Вин-7, то в ноутпаде можно: сэйв эс и там указать utf-8 или вин-1251. Правда для utf-8 он добавляет 3 спец. байта в начало файла. Я их потом удалял, если нужно, в редакторе pspad.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Конвертировать из UTF-8 в нормальный вид
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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