Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Perl - непонятная локаль
|
|||
|---|---|---|---|
|
#18+
Есть perl-скрипт, который запускается на двух идентичных серверах (одинаковая ОС и версия Perl). Вот фрагмент кода: Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. Когда запускаю этот код на одном сервере, получаю такое сообщение: Код: plaintext 1. 2. 3. 4. 5. Нечитаемый текст — это 'запрос обрабатывается'. Но почему-то он в неправильной кодировке. Хотя в начале скрипта указано use utf8 и binmode(STDOUT,':utf8'). И системная локаль UTF-8. При этом в базу данных (следующая строка) текст пишется в читаемом виде. ________________________ Мы смотрим с оптимизмом... ...в оптический прицел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2014, 14:44 |
|
||
|
Perl - непонятная локаль
|
|||
|---|---|---|---|
|
#18+
Если сделать так: Код: php 1. 2. 3. 4. то в файле tmp текст читаемый. То есть данные уже в UTF-8, но Perl почему-то делает лишнее преобразование. Не подскажите, где ошибка? Вот начало скрипта: Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2014, 16:25 |
|
||
|
Perl - непонятная локаль
|
|||
|---|---|---|---|
|
#18+
Пока сделал так: Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. Вроде бы работает. Но хотелось бы понять, что это за глюк такой, и сделать по человечески. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2014, 16:45 |
|
||
|
Perl - непонятная локаль
|
|||
|---|---|---|---|
|
#18+
на STDOUT без подключения Data::Dumper выводится нормально? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2014, 02:19 |
|
||
|
Perl - непонятная локаль
|
|||
|---|---|---|---|
|
#18+
Нет, выводится так же нечитаемо. То есть пишу print 'запрос обрабатывается' - выводится кириллица. Пишу print $res[1] - выводится нечитаемый текст. Создается впечатление, что SOAP::Lite данные получает в utf-8, но флаг utf не устанавливает и Perl лишний раз выполняет преобразование. А на другом сервере, с такой же конфигурацией, ОС и версиями, все нормально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2014, 09:59 |
|
||
|
Perl - непонятная локаль
|
|||
|---|---|---|---|
|
#18+
Кстати, если закомментировать use utf8 и binmode(STDOUT,':utf8'), то при print $res[1] выводит кириллицу. Но тогда вся кириллица в скрипте становится нечитаемой, поскольку сам скрипт у меня в utf8 (то есть при выполнении print 'запрос обрабатывается' выводится нечитаемый текст). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2014, 10:02 |
|
||
|
Perl - непонятная локаль
|
|||
|---|---|---|---|
|
#18+
Alibek B.Кстати, если закомментировать use utf8 и binmode(STDOUT,':utf8'), то при print $res[1] выводит кириллицу. Но тогда вся кириллица в скрипте становится нечитаемой, поскольку сам скрипт у меня в utf8 (то есть при выполнении print 'запрос обрабатывается' выводится нечитаемый текст). а должно быть в этом случае просто предупреждение про wide character in print и нормально читаемый вывод. сверь с той системой, где всё хорошо и если там так, как я написал выше, значит дело в системных линуксовых настройках. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2014, 10:38 |
|
||
|
|

start [/forum/search_topic.php?author=djek89&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
26ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 431ms |
| total: | 547ms |

| 0 / 0 |
