Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
perl utf8 и PGSql utf8
|
|||
|---|---|---|---|
|
#18+
Пише проект регистрации опозданий/отсутствий учащихся образовательного учреждения. Возникла неожиданная (для меня по крайней мере) проблема. Код на perl в UTF8 (gedit), кодировка postgresql UTF8 (initdb --locale ru_RU.UTF8), сама база - тоже UTF8. Из скрипта в базу кладутся ФИО, например. В базе они видны нормально, но при SELECT из базы некоторый русские буквы становятся черти-чем. Например, русская "Л" заменяется при выводе в HTML-страничку "�›". Таже ситуация с некоторыми другими буквами ("ы", например). В чем может быть проблема? Заранее спасибо. Доп. инфа: Сервер: Код: plaintext 1. 2. 3. perl: Код: plaintext 1. 2. PostgreSQL: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2008, 18:29 |
|
||
|
perl utf8 и PGSql utf8
|
|||
|---|---|---|---|
|
#18+
Если кратко то проблема может быть в чем угодно. если подробнее то надо методично вывести данные на каждом этапе их обработки и посмотреть после какого этапа появляються "кракозябрики". Из собственного опыта использования веб/перл/постгрес/utf8 могу сказать что следует проверить две вещи: 1. Url encode / decode -- данные из веб формы приходят в форме url-encode, посмотрите как вы их де-кодируете перед засылкой в базу. Убедитеь что сама веб форма указывает браузеру что данные должны быть url-encoded и utf8. 2. Шрифты: вопросы вместо букАв обышно возникают в ситуации когда декодинкг был произведен правильно, но в шрифте который должен отображать тескт нету нужных символов. Символы которых нету заменяются обычно вопросам. Вообщем вам надо просто внимательно сесть и разобтаться, т.к. бага в перле или постгресе который бы заменял быкву "Л" на знак вопроса точно нету. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2008, 23:01 |
|
||
|
perl utf8 и PGSql utf8
|
|||
|---|---|---|---|
|
#18+
shutfflВ базе они видны нормально, но при SELECT из базы некоторый русские буквы становятся черти-чем. Например, русская "Л" заменяется при выводе в HTML-страничку "�›". Скорее всего проблема не с PostgreSQL, а настройкой кодировки на web-сервере. Проверьте, не стоит ли у вас на web по-умолчанию cp1251. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2008, 23:03 |
|
||
|
perl utf8 и PGSql utf8
|
|||
|---|---|---|---|
|
#18+
Спасибо за ответы. Попробую. На счет encode/decode - я использую CGI.pm, который, вроде, должен сам следить за такими вещами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2008, 16:45 |
|
||
|
perl utf8 и PGSql utf8
|
|||
|---|---|---|---|
|
#18+
К сожалению, не помогло. В http.conf стоит UTF8. Пробовал менять на ru_RU.UTF8 - тоже самое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2008, 19:41 |
|
||
|
perl utf8 и PGSql utf8
|
|||
|---|---|---|---|
|
#18+
DAISER shutfflВ базе они видны нормально, но при SELECT из базы некоторый русские буквы становятся черти-чем. Например, русская "Л" заменяется при выводе в HTML-страничку "�›". Скорее всего проблема не с PostgreSQL, а настройкой кодировки на web-сервере. Проверьте, не стоит ли у вас на web по-умолчанию cp1251. Ещё возможно, что при формировании страницы "склеивается" текст с установленным флажком utf8 и без флажка. В DBD::Pg по-умолчанию флаг utf-8 не ставится. Попробуйте либо включить pg_enable_utf8, либо поставить флаг вручную (perldoc Encode). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2008, 03:32 |
|
||
|
perl utf8 и PGSql utf8
|
|||
|---|---|---|---|
|
#18+
Может, будет понятнее.... Код: plaintext 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. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2008, 12:02 |
|
||
|
perl utf8 и PGSql utf8
|
|||
|---|---|---|---|
|
#18+
Попробовал Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2008, 12:11 |
|
||
|
perl utf8 и PGSql utf8
|
|||
|---|---|---|---|
|
#18+
Вывод Live HTTP Header: Код: plaintext 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2008, 14:49 |
|
||
|
perl utf8 и PGSql utf8
|
|||
|---|---|---|---|
|
#18+
я может чего не понимаю... что значит "Из базы текст получается нормальным(!). Зато вся остальная страница - "КлаÑÑ". ваш код ничего не отдает клиенту кроме html'я " с текстом "Преподаватель уже существует" или "Не заполнены поля ФИО". В каком месте возникает ""Из базы текст получается нормальным(!)"? В любом случае этот вопрос по програмированию перле с использошанием модуля CGI.pm и в принципе не связан с базой данных. Прочем наверняка поднимался в перловом разделе и спец форумах подымался 100ню раз. Я не CGI.pm не использую , но ваше утверждение "encode/decode - я использую CGI.pm, который, вроде, должен сам следить за такими вещами." спорно, особенно очитывая результат вида КлаÑÑ. Сказать что у вас не так тяжело особенно т.к. не весъ код приведен. Например в начале файла должна стоятъ прагма Код: plaintext Код: plaintext Код: plaintext Код: plaintext Вообще лучше спроститъ в форуме по програмированию на перле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2008, 22:17 |
|
||
|
perl utf8 и PGSql utf8
|
|||
|---|---|---|---|
|
#18+
попробали работать в другой кодировке? если вы работаете под WIN то создайте пользователя c client_encoding='WIN1251' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2008, 23:28 |
|
||
|
perl utf8 и PGSql utf8
|
|||
|---|---|---|---|
|
#18+
Вся порнография в Linux)))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2008, 08:57 |
|
||
|
perl utf8 и PGSql utf8
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 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. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Если это поможет.... Появилась идея! Нет ли какой старой проблемы с типом в БД? Базу делал в PgAdmin. Для строковых ставил character varying. Сейчас пробую с character. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2008, 10:40 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=35536609&tid=2004063]: |
0ms |
get settings: |
9ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
21ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 247ms |
| total: | 329ms |

| 0 / 0 |
