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

  • Автор темы Alexander (Criz)
  • Дата начала
A

Alexander (Criz)

Гость
#1
На Домино поднят вэб-сервер, в файле сайта для кириллицы прописана кодировка 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, получаются кракозябры..

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

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 485
360
#2
а поток кто перекодирует, на выходе из агента?
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 485
360
#4
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
 
A

Alexander (Criz)

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

использую функцию
[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]

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

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

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 485
360
#6
я бы проверил работает ли вывод с вариантом 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) и поигравшись с фромчар (при перекодировке) - получится предсказуемый резалт