|
|
|
(Perl) Преобразование русского текста в 16-ричном виде в нормальный текст
|
|||
|---|---|---|---|
|
#18+
Есть проблема - файл, полученный как параметр через STDIN, записывается в виде последовательности 16-ричных чисел для всех русских символов. Чем можно обработать из Perl'е этот файл, чтобы получить нормальный вид русских слов в кодировке Windows? Что-то пока никаких стандартных функций не нашел... Или как-то можно решить эту проблему еще при получении данных с русскими словами в виде параметра, которые потом записываются в этот файл. Мне кажется, проблема стандартная, наверняка есть простое решение. Просьба помочь разобраться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2005, 16:28 |
|
||
|
(Perl) Преобразование русского текста в 16-ричном виде в нормальный текст
|
|||
|---|---|---|---|
|
#18+
Деев И.Есть проблема - файл, полученный как параметр через STDIN, записывается в виде последовательности 16-ричных чисел для всех русских символов. Чем можно обработать из Perl'е этот файл, чтобы получить нормальный вид русских слов в кодировке Windows? Что-то пока никаких стандартных функций не нашел... Или как-то можно решить эту проблему еще при получении данных с русскими словами в виде параметра, которые потом записываются в этот файл. Мне кажется, проблема стандартная, наверняка есть простое решение. Просьба помочь разобраться. проблемма стандартная - решение, ты отмел в предыдущем посте ( я про использовние CGI.pm ), лучшеб сказал что у тебя за ошибки вылезали при использовании того модуля, чем веломобиль изобретать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2005, 16:44 |
|
||
|
(Perl) Преобразование русского текста в 16-ричном виде в нормальный текст
|
|||
|---|---|---|---|
|
#18+
eпроблемма стандартная - решение, ты отмел в предыдущем посте ( я про использовние CGI.pm ), лучшеб сказал что у тебя за ошибки вылезали при использовании того модуля, чем веломобиль изобретать... Да это не я отметал - он сам "отмелся". Сервер мне не доступен на уровне файловой системы. Попытка загрузить модуль приводит к примерно такому сообщению: Internal Server Error. ... Oracle-HTTP-Server/1.3.28 Server. Логи мне пока недоступны. Сейчас попробую добраться до них через третьи руки. А как решение-то выглядит? Я поэтому и обратился, чтобы "веломобиль" не изобретать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2005, 16:54 |
|
||
|
(Perl) Преобразование русского текста в 16-ричном виде в нормальный текст
|
|||
|---|---|---|---|
|
#18+
Деев И.проблемма стандартная - решение, ты отмел в предыдущем посте ( я про использовние CGI.pm ), лучшеб сказал что у тебя за ошибки вылезали при использовании того модуля, чем веломобиль изобретать... Да это не я отметал - он сам "отмелся". Сервер мне не доступен на уровне файловой системы. Попытка загрузить модуль приводит к примерно такому сообщению: Internal Server Error. ... Oracle-HTTP-Server/1.3.28 Server. [/quot] а как ты туда скрипты заливаеш ? Логи мне пока недоступны. Сейчас попробую добраться до них через третьи руки. А как решение-то выглядит? Я поэтому и обратился, чтобы "веломобиль" не изобретать. как уже сказали пользоваться CGI.pm, если его нет на сервере, то опять же воспользоваться CGI.pm, предварительно установив его себе домашнюю директорию. Если к модулям, в частности, выше названному стойкое отвращение, то как вариант скачать его себе на локальную машину, просмотреть код, прочитать соответствующие RFC, и если не пропадет отвращение написать свое... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2005, 21:44 |
|
||
|
(Perl) Преобразование русского текста в 16-ричном виде в нормальный текст
|
|||
|---|---|---|---|
|
#18+
а как ты туда скрипты заливаеш ? Есть один доступный мне каталог, туда и заливаю. А как решение-то выглядит? Я поэтому и обратился, чтобы "веломобиль" не изобретать. как уже сказали пользоваться CGI.pm, если его нет на сервере, то опять же воспользоваться CGI.pm, предварительно установив его себе домашнюю директорию. Если к модулям, в частности, выше названному стойкое отвращение, то как вариант скачать его себе на локальную машину, просмотреть код, прочитать соответствующие RFC, и если не пропадет отвращение написать свое... Я с Perl'ом третий день по часу в день знакомлюсь. Нужен он мне только для одной задачки. Чайник я в нем абсолютный. Отвращения ни к чему нет, но рулю серваком не я, к сожалению. Пока это все раскрутится... Легче оказалось самому написать несколько строк кода и вручную все обработать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2005, 09:40 |
|
||
|
(Perl) Преобразование русского текста в 16-ричном виде в нормальный текст
|
|||
|---|---|---|---|
|
#18+
Код: plaintext а в обще я не совсем понял в чем проблема, распишите какое програмное обеспечение, настроен ли сервер на работу с кирилицей? Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2005, 11:06 |
|
||
|
(Perl) Преобразование русского текста в 16-ричном виде в нормальный текст
|
|||
|---|---|---|---|
|
#18+
Николай aka Motodor Код: plaintext а в обще я не совсем понял в чем проблема, распишите какое програмное обеспечение, настроен ли сервер на работу с кирилицей? Код: plaintext Спасибо! Но что-то не получается. #!/usr/bin/perl -w print "Content-Type: text/html\n"; print "Charset: windows-1251\n\n"; print "<HTML>"; print '<META content="text/html; charset=windows-1251" http-equiv="Content-Type">'; read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); print $buffer; print "<BR><BR>"; $buffer = ~s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/ge; print $buffer; Print "</BODY></HTML>"; Выдает PAR1=%F2%E5%EA%F1%F2%FB&BIG_XML=%F2%E5%EA%F1%F2%FB (Это то, что прочитано) 4294967295 (после $buffer = ~s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/ge;) А в этих полях было "текст" и "текст". В чем дело? Прошу простить за полнейшую неграмотность в Perl и глупые вопросы, но совершенно нет времени спокойно все изучить... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2005, 16:47 |
|
||
|
(Perl) Преобразование русского текста в 16-ричном виде в нормальный текст
|
|||
|---|---|---|---|
|
#18+
какой тип запроса? Post или Get? если get то все верно он выдает! для get запроса надо делать Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2005, 17:00 |
|
||
|
(Perl) Преобразование русского текста в 16-ричном виде в нормальный текст
|
|||
|---|---|---|---|
|
#18+
Николай aka Motodorкакой тип запроса? Post или Get? если get то все верно он выдает! для get запроса надо делать Код: plaintext 1. 2. 3. Нет, у меня задан метод POST: <FORM METHOD=POST... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2005, 17:08 |
|
||
|
(Perl) Преобразование русского текста в 16-ричном виде в нормальный текст
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2005, 17:21 |
|
||
|
(Perl) Преобразование русского текста в 16-ричном виде в нормальный текст
|
|||
|---|---|---|---|
|
#18+
Деев И. Николай aka Motodorкакой тип запроса? Post или Get? если get то все верно он выдает! для get запроса надо делать Код: plaintext 1. 2. 3. Нет, у меня задан метод POST: <FORM METHOD=POST... ...следующей деталью веломобиля должна стать функция которая отделяет имена переданных параметров от их содержания. После того как она будет готова, окажется, что файлы передаются несколько по другому чем patam_file=%ff%45... но это уже другая история... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2005, 17:33 |
|
||
|
(Perl) Преобразование русского текста в 16-ричном виде в нормальный текст
|
|||
|---|---|---|---|
|
#18+
Николай! Большое спасибо за терпение. Все получилось! Очень благодарен! Избавился от своего неэффективного кода, который в цикле перебирал весь текст и переводил 16-ричные коды в буквы. #while ($i < length($buffer)) #{ ## Считываем порцию #$srs = substr($buffer,$i,1); #$cod = ord($srs); #if ( $cod==37) # {$buffer1=$buffer1.chr(hex(substr($buffer,$i+1,2))); $i=$i+3;} #elsif ($cod == 43) # {$buffer1=$buffer1.' '; $i=$i+1;} #else {$buffer1=$buffer1.$srs; $i=$i+1;} #} ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2005, 17:35 |
|
||
|
(Perl) Преобразование русского текста в 16-ричном виде в нормальный текст
|
|||
|---|---|---|---|
|
#18+
2Деев И. если что задавайте вопросы будем пытаться помочь :) g613...следующей деталью веломобиля должна стать функция которая отделяет имена переданных параметров от их содержания. После того как она будет готова, окажется, что файлы передаются несколько по другому чем patam_file=%ff%45... но это уже другая история... :) если Вам интересно и Вы готовы принять участие в разработке "обработчика входящих запросов" могу выложить свой вариант! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2005, 17:39 |
|
||
|
(Perl) Преобразование русского текста в 16-ричном виде в нормальный текст
|
|||
|---|---|---|---|
|
#18+
Николай aka Motodor2Деев И. если что задавайте вопросы будем пытаться помочь :) g613...следующей деталью веломобиля должна стать функция которая отделяет имена переданных параметров от их содержания. После того как она будет готова, окажется, что файлы передаются несколько по другому чем patam_file=%ff%45... но это уже другая история... :) если Вам интересно и Вы готовы принять участие в разработке "обработчика входящих запросов" могу выложить свой вариант! Это оказалось значительно проще: %params =split(/[=&]/,$buffer); $par1 = $params{'PAR1'}; А у Вас какой вариант? P.S. У меня даже самокат, а не веломобиль! P.P.S Грешно смеяться над убогими! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2005, 18:45 |
|
||
|
(Perl) Преобразование русского текста в 16-ричном виде в нормальный текст
|
|||
|---|---|---|---|
|
#18+
я просто так выкладывайть полный код не буду вот держите, начальный вариант, и модернизируйте под себя POST - application/x-www-form-urlencoded Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2005, 10:15 |
|
||
|
(Perl) Преобразование русского текста в 16-ричном виде в нормальный текст
|
|||
|---|---|---|---|
|
#18+
Деев И. Николай aka Motodor2Деев И. если что задавайте вопросы будем пытаться помочь :) g613...следующей деталью веломобиля должна стать функция которая отделяет имена переданных параметров от их содержания. После того как она будет готова, окажется, что файлы передаются несколько по другому чем patam_file=%ff%45... но это уже другая история... :) если Вам интересно и Вы готовы принять участие в разработке "обработчика входящих запросов" могу выложить свой вариант! Это оказалось значительно проще: %params =split(/[=&]/,$buffer); $par1 = $params{'PAR1'}; А у Вас какой вариант? как минимум, тот который знает,что: - вместо `&` может встретится `;` - знает что `+` надо заменить на ` ` - понимает всяки-разны селекты - знает что имена параметров также могут быть %d0%c1%d2%c1%cd%c5%d4%d2%0a - понимает multipart/form-data .... P.S. У меня даже самокат, а не веломобиль! причем сделанный из бумаги и склеенный соплями... :) P.S. ты уже скачал и посмотрел CGI.pm ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2005, 10:19 |
|
||
|
(Perl) Преобразование русского текста в 16-ричном виде в нормальный текст
|
|||
|---|---|---|---|
|
#18+
2g613, поддерживаю, дело не для слобонервных и опытных программистов... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2005, 10:25 |
|
||
|
(Perl) Преобразование русского текста в 16-ричном виде в нормальный текст
|
|||
|---|---|---|---|
|
#18+
P.S. У меня даже самокат, а не веломобиль! причем сделанный из бумаги и склеенный соплями... :) P.S. ты уже скачал и посмотрел CGI.pm ? Ладно уж, "соплями"... Хрен с ним, лишь бы ездил. Это нужно для конкретной задачи, универсальности не требуется. CGI.pm не подключается. Там стоит Oracle Application Server, что-то не удается на нем этот модуль завести, админы даже запрос уже оформили. Какой-то Perl там не стандартный, что ли...Подробностей не знаю, не я этим занимаюсь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2005, 10:33 |
|
||
|
(Perl) Преобразование русского текста в 16-ричном виде в нормальный текст
|
|||
|---|---|---|---|
|
#18+
Николай aka Motodorя просто так выкладывайть полный код не буду вот держите, начальный вариант, и модернизируйте под себя POST - application/x-www-form-urlencoded Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Код: plaintext 1. 2. 3. 4. 5. 6. 7. Спасибо! Может, пригодится. Пока нет времени на эксперименты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2005, 10:36 |
|
||
|
|

start [/forum/topic.php?fid=23&gotonew=1&tid=1477842]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
154ms |
get topic data: |
8ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 207ms |
| total: | 463ms |

| 0 / 0 |
