Нестандартная кодировка страницы.

Тема в разделе "Lotus - Администрирование", создана пользователем Alexander (Criz), 4 янв 2009.

  1. Alexander (Criz)

    Alexander (Criz) Гость

    На Домино поднят вэб-сервер, в файле сайта для кириллицы прописана кодировка Windows-1251, но есть необходимость иногда выдавать информацию в кодировке KOI8-R.
    Есть агент, в котором есть такие строки:
    <!--shcode--><pre><code class='basic'>Print {Content-Type:text/xml}
    Print {<?xml version="1.0" encoding="KOI8-R"?>}[/CODE]
    в итоге страница опознаётся браузером как KOI8-R, но внутри всё тот же Windows-1251, получаются кракозябры..

    Что можно с эти сделать?
     
  2. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.083
    Симпатии:
    300
    а поток кто перекодирует, на выходе из агента?
     
  3. Alexander (Criz)

    Alexander (Criz) Гость

    В смысле? Все данные выдаются через Print, и выводятся уже вэб сервером. Или подскажите что надо посмотреть, я отвечу...
     
  4. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.083
    Симпатии:
    300
    Print выводит данные не обращая внимание на "ваш хэдер" - или вы ожидали другого? :huh:
    стринг надо закодировать соответственно, байдефолт - стринги кодируются в UTF-8
    вот мои изыскания: http://web3.inttrust.ru/site/itforum.nsf/4...33;OpenDocument

    вот перекодировка в LS - http://web3.inttrust.ru/Site/itforum.nsf/a...79?OpenDocument
    для java InputStream... всякие

    может это пригодится:
    http://web3.inttrust.ru/site/itforum.nsf/4...33;OpenDocument
     
  5. Alexander (Criz)

    Alexander (Criz) Гость

    Михаил, спасибо! Но пока внятного результата не получил:

    использую функцию
    [codebox]Function ConvertCharset(st As String, from_char As Long, to_char As Long) As String
    Dim msg As New LCStream (0, 0, from_char)
    msg.Text = st
    msg.ResetFormat to_char
    ConvertCharset = msg.Text
    End Function[/codebox]

    задаю такую строку:
    [codebox]Print ConvertCharset(|Привет мир|, LCSTREAMFMT_NATIVE, LCSTREAMFMT_KOI8)[/codebox]

    выводит крокозябры, которые уже не видны нормальными ни в одной из кодировок.
    Такое ощущение что на выходе вэб-сервер ещё раз полученную строку кодирует в кодировку по-умолчанию...

    Если это так, то как сказать серверу чтобы он не трогал этот принт, или что использовать вместо принта?
     
  6. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.083
    Симпатии:
    300
    я бы проверил работает ли вывод с вариантом UTF-8 (как в моем примере)

    и кодировку в браузере выставить принудительно:
    надо учесть, что "умные" программы от мелкософта любят автоматически определять кодировку (и делают это не всегда правильно - потому как хэдеры не всегда смотрят), конкретно это относиться к УЁ

    Третью ссылку вы пробовали? Др. словами - from_char не нэйтив (тотже ЮТФ и ВИН1251)
    про настройки сервера и их влияние на Print - я сей момент не вспомню
    подергайте джаву - там может по-другому работать (хотя не могу гарантировать)
    теоретически - указание
    Print "Content-Type: text/html; charset=UTF-8"
    именно вместе с кодировкой (ваш случай - КОИ), должно "отрубить" вмешательство Домины

    возможно покопав Char Set в настройках Site или Server в части Domino Web Engine (у меня там Use UTF-8 for output - No) и поигравшись с фромчар (при перекодировке) - получится предсказуемый резалт
     
  7. Alexander (Criz)

    Alexander (Criz) Гость

    Спасибо!
    Это и решило все проблемы.
     
Загрузка...
Похожие Темы - Нестандартная кодировка страницы
  1. XiNoID
    Ответов:
    8
    Просмотров:
    3.799
  2. NickProstoNick
    Ответов:
    6
    Просмотров:
    175
  3. R4z0R
    Ответов:
    17
    Просмотров:
    1.504
  4. PaKo
    Ответов:
    1
    Просмотров:
    1.078
  5. AndreyS
    Ответов:
    7
    Просмотров:
    3.290

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