Перейти к содержимому

Фотография
- - - - -

Как Указать Кодировку Для Скрипта Perl?


  • Вы не можете создать новую тему
  • Закрытая тема Тема закрыта
Сообщений в теме: 5

#1 Rico

Rico

    Активный

    Топикстартер
  • суперМодератор
  • 21
    316 сообщ.

Отправлено 21 Август 2007 в 13:03

Ситуация такая: первые программы пришу и выполняю в ДОС.
Сам текст набирается из под Винды, ну и windows-1251 само-собой.
При работе в ДОС (DOS 866) русский текст, естественно, преобразуется в кракозябру.

Можно ли решить проблему средствами Perl? Типа указать как-то в самом листинге?
  • 0

Спонсор

#2 v0rbis

v0rbis

    selfcoded

  • V.I.P.
  • 7
    923 сообщ.

Отправлено 21 Август 2007 в 13:06

пиши на латиннице _или_ редактируй текст в дос-редакторах _или_ сохраняй скрипт после набора в винде в любую другую кодировку и работай прозрачно с этим.
  • 0

#3 Rico

Rico

    Активный

    Топикстартер
  • суперМодератор
  • 21
    316 сообщ.

Отправлено 21 Август 2007 в 13:54

Гм..
v0rbis, ты только не ругайся, я ещё мало соображаю в серверном программировании. Но:
Если у меня хост под UNIX, скрипт Perl (насколько я понимаю) д.б. написан под koi8-r. Т.к. выполняться он на серваке должен.
Однако хост виртуальный, и выдаёт страницы клиенту в windows-1251.
Если передавать данные методом post, то текст будет передан скрипту в той же кодироке, что и полученный HTML-документ. То бишь в windows-1251.
Поймёт ли скрипт то, что получил? И как это решают? Я думал, что простой строкой в листинге... такой крутой язык и на тебе...

ЗЫ. Об этой галиматье я задумался, когда DOS не понял windows-1251. Конечно, позже я пойму до конца, что спросил, но ответ лучше знать заранее.
  • 0

#4 v0rbis

v0rbis

    selfcoded

  • V.I.P.
  • 7
    923 сообщ.

Отправлено 21 Август 2007 в 14:16

я ещё мало соображаю в серверном программировании.


я тоже

Если у меня хост под UNIX, скрипт Perl (насколько я понимаю) д.б. написан под koi8-r. Т.к. выполняться он на серваке должен.


koi8 ето олдскул. ньюскул это utf8 (и разновидности).

Однако хост виртуальный, и выдаёт страницы клиенту в windows-1251.
Если передавать данные методом post, то текст будет передан скрипту в той же кодироке, что и полученный HTML-документ. То бишь в windows-1251.
Поймёт ли скрипт то, что получил? И как это решают? Я думал, что простой строкой в листинге... такой крутой язык и на тебе...


и что? входящие-выходящие данные можно конвертнуть тем же iconv'ом. ежели ты полностью страницы делаешь
то так же как и в пыхпых отдаешь серваку заголовок с кодировкой страницы. но полностью страница на перле это атавизм какойто.
на перле удобно писать системные скрипты небольшого объема (по моей жизни судя)

Об этой галиматье я задумался, когда DOS не понял windows-1251.


приятно что ктото еще помнит что не всегда была свиста.


з.ы. перл под вынь извратъ
  • 0

#5 kavkaz

kavkaz

    Прохожий

  • Новичок
  • 0
    2 сообщ.

Отправлено 15 Ноябрь 2007 в 15:13

Rico, интересно а зачем тебе средствами Perl перевести кодировку в dos? только ради просмотра результата?

если мне не изменяет память можно в виндовой командной строке просто перевести кодировку на вин1251... например командой
chcp 1251
обратно в досовскую:
chcp 866
  • 0

#6 Medwoodu

Medwoodu

    Злобный модер

  • суперМодератор
  • 357
    1 418 сообщ.

Отправлено 15 Ноябрь 2007 в 16:54

Отвечая на самый первый вопрос: нельзя, только пользуя iconv.
Второй вопрос про виртуальных хост: сервер выдает заголовок ответа, если iis то не знаю, если апач, то надо в заголовок вывести "Content-Type: text/html; CHARSET=utf8"
соответствующая кодировка
Если вы хотите выполнять скрипт как обычное приложение, то тогда языки меняются сменой локали в баше
  • 0



Похожие темы Свернуть

Статистика

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 скрытых пользователей