Страницы: 1
RSS
Проблема с кодировками при сохранении в формате текстового документа с разделителями табуляции
 
Добрый день!
Имеется таблица содержащая в себе данные на немецком языке. Данную таблицу необходимо сохранить в качестве текстового файла с разделителями табуляции (любой другой формат не подходит). При сохранении файла в нужном формате устанавливается кодировка ANSI, из-за которой теряются специфичные символы немецкого языка (то есть умляуты заменяются на вопросительные знаки).

Возможно ли как-нибудь способом избежать потери умляутов при сохранении в данном формате, и если да, то как?

P.S.
Редактировать отдельные символы в конечном файле не представляется возможным (количество данных огромно).  
Изменено: helper - 01.11.2015 12:57:50
 
Попробуйте посмотреть здесь
 
Проблема в том, что мне нужен файл с разделителями табуляции. И я может не понял, но этот макрос же сохраняет файл в качестве обычного текстового файла?
 
Цитата
helper написал: При сохранении файла в нужном формате устанавливается кодировка ANSI, из-за которой теряются специфичные символы немецкого языка (то есть умляуты заменяются на вопросительные знаки).
я слышала, уже лет 10 ( или более) умляуты, вроде как,
в новой немецкой орфографии отменили
?.. разве нет?.. (Sorry - вспомнила - заменили эсцет на ss; умляуты не отменяли)
в любом случае, нет файла - нет проблемы  8)
рекомендации, как здесь (только там для казахского алфавита)...
Изменено: JeyCi - 01.11.2015 14:44:08
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Цитата
JeyCi написал: рекомендации, как здесь (только там для казахского алфавита)...
Я же уже два раза сказал, что мне нужно сохранить файл именно с разделителями табуляции в кодировке, которая бы поддерживала бы немецкий алфавит.
Этот же формат, что вы предлагаете, мне никак не подходит.
Да и зачем мне это? Excel и так позволят сохранять таблицы в .txt в кодировке юникода.

Оффтоп:
Цитата
JeyCi написал: я слышала, уже лет 10 ( или более) умляуты, вроде как,
в новой немецкой орфографии отменили?.. разве нет?.. (Sorry - вспомнила - заменили эсцет на ss; умляуты не отменяли)
На практике ничего не отменили, я даже ни разу не видел в Германии записи эсцет в виде "SS".
 
Опа-па... Прошу простить, понял что хрень сморозил. Сейчас буду разбираться.
 
Цитата
helper написал: Я же уже два раза сказал
лучше 2 раза прочитать Правила Форума:
1 раз до открытия темы
2-й раз по линку из #4
p.s. ветку вЫ называли "Проблема с кодировками..."?.. намёк был дан - намёк не понят...   :(
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Доброе время суток
Если модифицировать код Игоря под ссылке любезно предоставленной МВТ, то вполне можно записать текст в универсальной западноевропейской кодировке 1252. Может имеет смысл поискать более детальную кодировку для немецкого
Код
Public Sub Test()
    Dim strOut As String, Strs() As String
    Dim i As Long, vData As Variant
    vData = ActiveSheet.UsedRange.Rows(1).Value
    ReDim Strs(LBound(vData, 2) To UBound(vData, 2))
    For i = LBound(vData, 2) To UBound(vData, 2)
        Strs(i) = CStr(vData(1, i))
    Next
    strOut = Join(Strs, vbTab)
    Debug.Print strOut
    WriteWestEurope strOut, "c:\temp\3.txt"
End Sub

Public Sub WriteWestEurope(ByVal this As String, ByVal FileName As String)
    With CreateObject("ADODB.Stream")
        .Type = 2: .Mode = 3
        .Charset = "Unicode"
        .Open
        .WriteText this
        .Position = 0
        .Charset = "Windows-1252"
        .SaveToFile FileName, 2
        .Close
    End With
End Sub

Пример перекодировки во вложении.
Успехов.
 
Цитата
helper написал:
Я же уже два раза сказал, что мне нужно сохранить файл именно с разделителями табуляции в кодировке, которая бы поддерживала бы немецкий алфавит.
... Excel и так позволят сохранять таблицы в .txt в кодировке юникода.
Ну и в чем проблема? Так и сохраняйте. Я взял текст из файла Андрей VG, вставил в Excel, немного поменял, сохранил как "Текст Юникод", открыл в Ворде - вот и немецкий алфавит, и табуляция!
 
Вышла ошибка. Выходной файл получился в кодировке Unicode, а по условию ANSI Windows-1252 (западно-европейская). Надо поменять метод записи в файл на
Код
Public Sub WriteWestEurope(ByVal this As String, ByVal FileName As String)
    With CreateObject("ADODB.Stream")
        .Type = 2: .Mode = 3
        .Charset = "Windows-1252"
        .Open
        .WriteText this
        .Position = 0
        .SaveToFile FileName, 2
        .Close
    End With
End Sub
Страницы: 1
Читают тему
Наверх