|
|
|
Perl: Запутался в кодировках
|
|||
|---|---|---|---|
|
#18+
Есть Perl-скрипт в кодировке UTF-8. Скрипт запускается в консоли Windows; кодировка самой консоли cp866, аргументы в скрипт передаются в cp1251. Скрипт подключается к БД Oracle. Код скрипта: Код: 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. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. В скрипте: 1. Устанавливаются локали на вход и выход (stdin, stdout). 2. Перекодируются входные аргументы. 3. При подключении к БД выставляется кодировка utf8. 4. SQL-запрос отправляется на сервер в UTF. 5. С сервера данные должны тоже приходить в UTF. Однако данные я получаю примерно в таком виде: Код: plaintext 1. 2. 3. 4. Причем из вывода видно, что содержимое полей и наименование полей преобразуется по разному. Не подскажите, как нужно написать строку $enc->{$_} = $row->{$_} foreach keys (%{$row}) чтобы получить читаемый текст? ________________________ Мы смотрим с оптимизмом... ...в оптический прицел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2013, 13:04 |
|
||
|
Perl: Запутался в кодировках
|
|||
|---|---|---|---|
|
#18+
Хм... Оказалось это Data::Dumper мне голову морочил. Сделал так: Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Значения теперь выводятся правильно. Правда непонятно, почему кириллица в названиях столбцов корежится, но это скорее всего баг где-то в потрохах fetchrow_hashref или DBI. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2013, 13:11 |
|
||
|
|

start [/forum/topic.php?fid=23&fpage=103&tid=1463442]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
52ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
29ms |
get tp. blocked users: |
1ms |
| others: | 317ms |
| total: | 435ms |

| 0 / 0 |
