Ansi + Solaris

Тема в разделе "Lotus - Программирование", создана пользователем NickProstoNick, 23 апр 2012.

  1. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Всем привет!
    Проблема с кодировкой при чтении текстовых файлов. Как решить вопрос?
    Файл конвертировать нельзя... по крайней мере пользователя заставлять конвертировать нельзя
    На входе Dos/Windows ANSI
     
  2. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.083
    Симпатии:
    300
    а поточней - читать где?
     
  3. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Серверный агент разбирает файл. Вот собственно разбирает криво.
    В результате получаю нечитабельный текст. Параметры стрима перебирал разные.
     
  4. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.083
    Симпатии:
    300
    стрим в какой кодировке? ДОС?
    тоды указываем при открытии...
    НО (и я об этом где-то упоминал) если со стримом "ничего" не сделать (например ДХЛ парсеру не отдать) - будут кракозябры
    как вокэраунд - вот так, с ЮТФ8:
    Код (Text):
    Private Const MIME_TYPE_UTF8={text/plain; charset=UTF-8}
    Function UTF8toClient(strm As NotesStream) As String
    'для отображения UTF-8 кодировки в клиенте Lotus Notes
    '--------------------------------------------------------------------------------------------------------------
    ses.ConvertMime=False
    Dim doc As NotesDocument
    Set doc=db.CreateDocument()
    Dim body As NotesMimeEntity
    Set body=doc.CreateMIMEEntity
    Call body.SetContentFromText(strm, MIME_TYPE_UTF8, ENC_NONE)
    UTF8toClient=body.ContentAsText
    ses.ConvertMime=True
    '--------------------------------------------------------------------------------------------------------------
    End Function
    Function UTF8toClientTXT(s As String) As String
    'для отображения UTF-8 кодировки в клиенте Lotus Notes
    '--------------------------------------------------------------------------------------------------------------
    Dim strm As NotesStream
    Set strm=ses.CreateStream()
    Call strm.WriteText(s)
    UTF8toClientTXT=UTF8toClient(strm)
    ses.ConvertMime=True
    '--------------------------------------------------------------------------------------------------------------
    End Function
     
Загрузка...
Похожие Темы - Ansi Solaris
  1. Vadik(R)
    Ответов:
    4
    Просмотров:
    1.430
  2. alyan
    Ответов:
    0
    Просмотров:
    1.302
  3. Psixo
    Ответов:
    3
    Просмотров:
    7.955

Поделиться этой страницей