Автор Тема: Apache и кирилица под Perl програма  (Прочетена 5535 пъти)

zazzko

  • Напреднали
  • *****
  • Публикации: 626
    • Профил
    • WWW
Проблема е следния: последната програма, която направих поддържа многоезичен интерфейс чрез добавяне на съответните файлове. Дотук хубаво, ама кирилицата никаква я няма. Въпреки, че са добавени необходимите редове в генерирания HTML код (енкодинга се сменя също динамично и за кирилицата е windows-1251) продължавам да нямам кирилица. Генерирания сорс е на маймуница (т.е. браузъра показва това което му подава Апачето и не е проблема в него). Странното е, че всички други скриптове (които са PHP), които съм инсталирал си работят коректно. Статичните страници също. Това ме навежда на мисълта, че в Apache има някаква конфигурация която съм пропуснал. Ето ми реда за charsets:
Цитат

AddDefaultCharset off
    AddLanguage bg .bg
    AddLanguage da .dk
    AddLanguage nl .nl
    AddLanguage en .en
    AddLanguage et .ee
    AddLanguage fr .fr
    AddLanguage de .de
    AddLanguage el .el
    AddLanguage he .he
    AddCharset ISO-8859-8 .iso8859-8
    AddLanguage it .it
    AddLanguage ja .ja
    AddCharset ISO-2022-JP .jis
    AddLanguage kr .kr
    AddCharset ISO-2022-KR .iso-kr
    AddLanguage nn .nn
    AddLanguage no .no
    AddLanguage pl .po
    AddCharset ISO-8859-2 .iso-pl
    AddLanguage pt .pt
    AddLanguage pt-br .pt-br
    AddLanguage ltz .lu
    AddLanguage ca .ca
    AddLanguage es .es
    AddLanguage sv .sv
    AddLanguage cz .cz
    AddLanguage ru .ru
    AddLanguage zh-tw .tw
    AddLanguage tw .tw
    AddCharset Big5         .Big5    .big5
    AddCharset WINDOWS-1251 .cp-1251
    AddCharset CP866        .cp866
    AddCharset ISO-8859-5   .iso-ru
    AddCharset KOI8-R       .koi8-r
    AddCharset UCS-2        .ucs2
    AddCharset UCS-4        .ucs4
    AddCharset UTF-8        .utf8
    <IfModule mod_negotiation.c>
        LanguagePriority bg en da nl et fr de el it ja kr no pl pt pt-br ru ltz ca es sv tw
    </IfModule>

Даже AddDefaultCharset off да е на on проблема остава. Просто ми свършиха идеите какво да направя.

  • Гост
Apache и кирилица под Perl програма
« Отговор #1 -: Apr 10, 2004, 13:06 »
Здр.

Всъщност, ако браузъра се превключи ръчно на 1251, излиза ли добре или по никакъв начин не се чете на BG?
Да не би българския текст, който скрипта вгражда в страниците, да е UTF-8, а после да му слага w1251?
"Маймуницата" от грешен (смесен) енкодинг (CP1251/UTF-8) е много специфична.
Понякога доста помага w3-html-validator-a http://validator.w3.org/
Активен

zazzko

  • Напреднали
  • *****
  • Публикации: 626
    • Профил
    • WWW
Apache и кирилица под Perl програма
« Отговор #2 -: Apr 10, 2004, 13:15 »
Ако се превключи ръчно се променя и излиза всичко наред. Току що видях, че енкодига на браузъра си стои на ISO-8859-1, въпреки че чрез meta тага съм задал windows-1251:
Цитат

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

Не знам защо така'<img'>?

sebastianz55

  • Напреднали
  • *****
  • Публикации: 1136
    • Профил
    • WWW
Apache и кирилица под Perl програма
« Отговор #3 -: Apr 10, 2004, 13:34 »
това е от апачето
пробвай да сложиш коментар пред всички други езици освен пред български
Активен

С уважения:
Sebastianz55
------------------
http://www.fsa-bg.org
                              
Open Fest Initiative  http://openfest.org
                                              
Моля ви, уважавайте процесорното време на другите - пишете на кирилица и използвайте търсачката на форума!

  • Гост
Apache и кирилица под Perl програма
« Отговор #4 -: Apr 11, 2004, 17:12 »
хъмъхм ... това ми напомня един проблем ....
на един сървър имам странички с пхп дето излизат на китаица ... а уж всичко е наред , като превключиш ръчно енцодинга на браузера си излиза на български.

header-ите на хтмлто са си съвсем в ред :
Примерен код
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv=Content-Type content="text/html; charset=windows-1251">

Проблема се появява под WinXP i Win2000, под 98 и михлениум си е наред.

zazzko , при теб оправи ли се ако махнеш другите езици ?

и ако някой знае друг начин за оправяне ... щото да ги махна не е лекуване а байпас '<img'>
Активен

zazzko

  • Напреднали
  • *****
  • Публикации: 626
    • Профил
    • WWW
Apache и кирилица под Perl програма
« Отговор #5 -: Apr 11, 2004, 17:33 »
Не, не се е оправи. Просто се надявам там където ще работи скритпа да го няма този проблем   '<img'> .

  • Гост
Apache и кирилица под Perl програма
« Отговор #6 -: Apr 15, 2004, 17:48 »
Цитат (zazzko @ Април 10 2004,13:36)

zazzko ti hubavo si napisal si4kite teq ne6ta ama nqma smisul v tqh i 6te ti kaja za6to, kirliziraneto na apache servera stava mnogo prosto ot edno edinstveno red4e i to e tova koeto suzdava teku6t charset za vsi4ki OUT stranici t.e. to izglejda taka:

AddDefaultCharset ISO-8859-1

Na negovo mqsto trqbva da bude vuvedeno slednoto:

AddDefaultCharset WINDOWS-1251

Tova e vsi4ko, priqtna rabota '<img'>
Активен

zazzko

  • Напреднали
  • *****
  • Публикации: 626
    • Профил
    • WWW
Apache и кирилица под Perl програма
« Отговор #7 -: Apr 15, 2004, 18:02 »
Не, не иска...все същото си е.

  • Гост
Apache и кирилица под Perl програма
« Отговор #8 -: Apr 15, 2004, 18:03 »
Цитат (Guest @ Април 15 2004,18:48)
Цитат на: zazzko,Април 10 2004,13:36
zazzko ti hubavo si napisal si4kite teq ne6ta ama nqma smisul v tqh i 6te ti kaja za6to, kirliziraneto na apache servera stava mnogo prosto ot edno edinstveno red4e i to e tova koeto suzdava teku6t charset za vsi4ki OUT stranici t.e. to izglejda taka:

AddDefaultCharset ISO-8859-1

Na negovo mqsto trqbva da bude vuvedeno slednoto:

AddDefaultCharset WINDOWS-1251

Tova e vsi4ko, priqtna rabota '<img'>

Dopulnenie kum predhodniq posting:

Charset-a e testvan na Apache 2.0.49
Активен

  • Гост
Apache и кирилица под Perl програма
« Отговор #9 -: Apr 15, 2004, 18:10 »
Цитат (Guest @ Април 15 2004,19:03)

Koq versiq na apache ima6, nameri si 2.0.49, zareji 1.3xx, ako tvoqta e takava.
Ako ne vrqva6 4e raboti probvai eto tozi adres:
home.bigbg.net
Активен

CaBA

  • Напреднали
  • *****
  • Публикации: 303
    • Профил
    • WWW
Apache и кирилица под Perl програма
« Отговор #10 -: Apr 16, 2004, 12:34 »
Здрасти,
проблемът ти вероятно е в това, че скрипта праща HTTP хедър charset=iso-8859-1, а не коректния charset=windows-1251. Браузърите обикновено изпалзват кодирането, което получават от HTTP хедъра, и ако то липсва, тогава гледат в HTML. За да провериш дали това е така, свържи се с телнет към сървъра така:
Примерен код
telnet твоя-сървър 80
GET /път/към/твоя/скрипт HTTP/1.0

после натисни два пъти enter. Ако си конфигурирал apdche с виртуални хостове, ще трябва да добавиш след get заявката и
Примерен код
HOST: името-на-виртуалния-хост
Така ще видиш HTTP хедърите, които ти изпраща твоята програма. Конфигурацията на charset-овете на сървъра не играе роля при  динамично генериране на документи през CGI, защото CGI програмата e длъжна да изпрати хедърите. Виж при теб кой ги генерира и го поправи.
Активен

10 години ябълкова диета стигат, стигат!

slaff

  • Гост
Apache и кирилица под Perl програма
« Отговор #11 -: Apr 16, 2004, 16:50 »
Цитат
роблемът ти вероятно е в това, че скрипта праща HTTP хедър charset=iso-8859-1, а не коректния charset=windows-1251. Браузърите обикновено изпалзват кодирането, което получават от HTTP хедъра, и ако то липсва, тогава гледат в HTML.

Точно така. Сложи в хедъра на Perl скрипта, някъде в началото за предпочитане
print "Content-type: text/html; charset=windows-1251\n";

и след последния хедър добави
print "\n";
за да разграничи браузъра хедъра от HTML кода.
Активен

zazzko

  • Напреднали
  • *****
  • Публикации: 626
    • Профил
    • WWW
Apache и кирилица под Perl програма
« Отговор #12 -: Apr 16, 2004, 17:43 »
slaff....ма много ти благодаря. Благодарение на теб скрипта тръгна. Все пак се чудя защо не искаше при условие съм сложил този ред в META таг-а, който би трябвало да замества хедара пращан от header метода. Важното е, че проработи...отново благодраности на всички и особенно на slaff.

pipo

  • Новаци
  • *
  • Публикации: 2
    • Профил
Apache и кирилица под Perl програма
« Отговор #13 -: Apr 16, 2004, 23:40 »
Пробвай това:
#!/usr/bin/perl
print qq (
<html>
<head>
<title>Кирилица</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body bgcolor="#0099FF">
<p align="center"><font size="4">Тест за поддръжка на WIN 1251</font></p>
</body>
</html>
);
и трябва да имаш нормална кирилизация
Активен

  • Гост
Apache и кирилица под Perl програма
« Отговор #14 -: Nov 14, 2004, 18:07 »
Цитат (Guest @ Април 15 2004,18:48)
Цитат на: zazzko,Април 10 2004,13:36
zazzko ti hubavo si napisal si4kite teq ne6ta ama nqma smisul v tqh i 6te ti kaja za6to, kirliziraneto na apache servera stava mnogo prosto ot edno edinstveno red4e i to e tova koeto suzdava teku6t charset za vsi4ki OUT stranici t.e. to izglejda taka:

AddDefaultCharset ISO-8859-1

Na negovo mqsto trqbva da bude vuvedeno slednoto:

AddDefaultCharset WINDOWS-1251

Tova e vsi4ko, priqtna rabota '<img'>

Много ти Благодаря човече!
Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
Perl
Общ форум
x11r6 5 7492 Последна публикация Aug 09, 2003, 10:03
от x11r6
Perl
Общ форум
Йордан 3 6898 Последна публикация Nov 13, 2003, 16:14
от Йордан
Gtk-Perl
Хардуерни и софтуерни проблеми
apogza 0 4598 Последна публикация Jan 24, 2004, 12:52
от apogza
chroot на Apache и perl въпрос
Хардуерни и софтуерни проблеми
57r1k3 2 4090 Последна публикация Jan 31, 2005, 15:51
от Ice___Cool
Apache ?PHP ?PERl
Настройка на програми
Rooted 3 3311 Последна публикация Jul 04, 2005, 15:28
от Hapkoc