Чтение файлов формата .txt в кодировке utf-8 - VBA
Формулировка задачи:
Уважаемые!
Делаю скрипт для чтения и записи txt-файлов из Excel-вского файла по средствам VBA макросов.
Но всё упёрлось в проблему с кодировкой. Мне по умолчанию нужна UTF-8, так как она удобнее и файлы с которыми будет работать скрипт будут именно в ней.
Взял за основу для чтения и записи такой скрипт:
Проблема в том, что записывать (если понадобится) или считыватт прийдётся txt-шники с «charset = Utf-8», а Excel по-умолчанию работает с ANSI.
Из решений просмотрел в net-е. И думал нашёл функцию
StrConv(s, vbUnicode)
иStrConv(s, vbFromUnicode)
Но увы... получается, что она не выполняет конвертацию в кодировку юникод и обратно. Существуют ли какие-нибудь функции для решения этой проблемы?Решение задачи: «Чтение файлов формата .txt в кодировке utf-8»
textual
Листинг программы
Sub TEST() Dim str As String 'Текст для записи в файл. Dim pth As String 'Путь к файлу + имя.расширение Dim chI As String 'Кодировка входящего текста Dim chO As String 'Кодировка исходящего текста ' Значения по умолчанию str = "Текстовый файлик" pth = "E:\TMP\1.txt" chI = "UTF-8" chO = "UTF-8" ' Берём путь к файлу из соседней ячейки справа от выделенной If Len(ActiveCell.Offset(0, 1).Value) Then pth = ActiveCell.Offset(0, 1).Value str = ActiveCell.Text ActiveCell.Value = exChangeContent(str, pth, chI, chO) End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д