происходит неверное распознавание русских символов. Пробовал 3 варианта последнего параметра для функции OpenTextFile (-2, -1, 0), но это не помогло, во всех трех случаях все равно буквы не распознаются.
Помогите пожалуйста, кто то сталкивался, как можно решить проблему?
ChangeFileCharset Filename, "Windows-1251", "UTF-8"
txt = CreateObject("scripting.filesystemobject").OpenTextFile(Filename, 1, True).ReadAll
....
End Sub
Function ChangeFileCharset(ByVal filename$, ByVal DestCharset$, _
Optional ByVal SourceCharset$) As Boolean
' функция перекодировки (смены кодировки) текстового файла
' В качестве параметров функция получает путь filename$ к текстовому файлу,
' и название кодировки DestCharset$ (в которую будет переведён файл)
' Функция возвращает TRUE, если перекодировка прошла успешно
On Error Resume Next: Err.Clear
With CreateObject("ADODB.Stream")
.Type = 2
If Len(SourceCharset$) Then .Charset = SourceCharset$ ' указываем исходную кодировку
.Open
.LoadFromFile filename$ ' загружаем данные из файла
FileContent$ = .ReadText ' считываем текст файла в переменную FileContent$
.Close
.Charset = DestCharset$ ' назначаем новую кодировку
.Open
.WriteText FileContent$
.SaveToFile filename$, 2 ' сохраняем файл уже в новой кодировке
.Close
End With
ChangeFileCharset = Err = 0
End Function
Function Read_Text(Путь_К_Файлу As String) As String
With CreateObject("ADODB.Stream")
.Type = 2
.Charset = "utf-8"
.Open
.LoadFromFile Путь_К_Файлу
Read_Text = .ReadText
.Close
End With
End Function
DopplerEffect: русские буквы заменились на знаки вопроса
перед копированием кода смените раскладку клавиатуры на RU
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Это еще зависит от версии Эксель. Excel2002 не откроет файл в кодировке UTF-8. Сначала надо перекодировать сам текстовый файл потом открывать. Excel2010 у меня открывает. Если надо просто открыть файл ручками, чтобы было не кривая кодировка. Порядок 1. Запускаем Эксель 2. Открываем окно открытия документов в поле тип файлов выбираем все файлы потом находим необходимый текстовый файл 3. Как по нему щелкнем должно появиться окно выбора кодировки. Выбираем UTF-8 Но все равно немного странно у меня не распознается символ рубля остальное нормально. Причем точно также и в Word и Notepad++ и блокнот. Через макрос надо по другому правда откроется в новом окне. Раз сами писали макрос разберетесь как доработать
Код
Sub Макрос1()
Workbooks.OpenText Filename:= _
"C:\Documents and Settings\SEN\Мои документы\Downloads\Пример отчета за период.txt" _
, Origin:=65001, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 1), _
TrailingMinusNumbers:=True
End Sub
Уважаемые знатоки, просвятите плз Как же все таки читать текстовые кирилические файлы utf-8
Пока удалось только открывать файл через Workbooks.OpenText тогда кирилица сохраняется
Sub ReadTextFileRu() Workbooks.OpenText filename:="C:\a1.txt", Origin:=65001 Columns("A:A").Copy End Sub ----------------через open кракозябры------------------------------ Sub ReadOpen TextFile1() Dim fileContent As String Dim dataArray() As String Dim i As Integer
Open "C:\a1.txt" For Input As #1 fileContent = Input$(LOF(1), 1) Close #1
dataArray = Split(fileContent, vbCrLf) For i = 0 To UBound(dataArray) Range("B" & (i + 1)) = dataArray(i) Next i End Sub ----------------через open кракозябры------------------------------ Sub ReadTextFile2() With CreateObject("Scripting.FileSystemObject") ' Try use UTF-8 With .OpenTextFile("C:\a1.txt", 1, False, -1) fileContent = .ReadAll .Close End With End With
fileLines = Split(fileContent, vbCrLf) For i = 0 To UBound(fileLines) Range("B" & (i + 1)) = fileLines(i) Next i End Sub