Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
[Perl] Не сохраняются турецкие буквы в таблицу Oracle
|
|||
|---|---|---|---|
|
#18+
mops, $ENV{NLS_LANG} можно попробовать выставить точно такой же, как кодировка varchar2 в БД ( CL8ISO8859P5 ) - тогда оно наверное и вставлять будет - байт в байт. что то типа: NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2013, 16:09 |
|
||
|
[Perl] Не сохраняются турецкие буквы в таблицу Oracle
|
|||
|---|---|---|---|
|
#18+
если все через юникод = тоже вроде работает. исходник в 1251. Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2013, 16:55 |
|
||
|
[Perl] Не сохраняются турецкие буквы в таблицу Oracle
|
|||
|---|---|---|---|
|
#18+
Vladimir Baskakov, Решил на время отказаться от файла и добавил константу в программу ĞpşŞğöVÖ. Попробовал переводить в UTF8, в таблицу вставляется ?p????V?, установил кодировку сессии как кирилическую (AMERICAN_AMERICA.CL8ISO8859P5), вставляется аpўо№іVж. Продолжаю искать решение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2013, 11:44 |
|
||
|
[Perl] Не сохраняются турецкие буквы в таблицу Oracle
|
|||
|---|---|---|---|
|
#18+
Код: perl 1. Зачем тут from_to, когда прочитанные из файла строки находятся уже в кодировке utf8? Вы же указали это первыми двумя строками. PS. Может, стоит установить кодировку сессии юникодную? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2013, 12:26 |
|
||
|
[Perl] Не сохраняются турецкие буквы в таблицу Oracle
|
|||
|---|---|---|---|
|
#18+
mopsVladimir Baskakov, Решил на время отказаться от файла и добавил константу в программу ĞpşŞğöVÖ. Попробовал переводить в UTF8, в таблицу вставляется ?p????V?, установил кодировку сессии как кирилическую (AMERICAN_AMERICA.CL8ISO8859P5), вставляется аpўо№іVж. Продолжаю искать решение. в фаре - 1) входим в режим редактирования 2) выставляем кодировку 8859-5 3) вставляем текст аpўо№іVж 4) меняем кодировку на анси-турецкую - 1254 5) - видим нужное слово по турецки! Вы в таблице видите русские буковки ровно потому, что шрифт в отображении не тот. Русский. Турецкий покажет правильное турецкое слово. Как я и говорил - когда NLS_LANG у сессии и базы совпадает, вставка прошла - байт в байт. Правильно. ============== Дальше - возьмите мой пример, и сделайте вставку в nvarchar2 поле. набивайте его в фаре, в турецкой 1254 кодировке, исправьте 1251 на 1254 везде. должно стать нормально. $ENV{NLS_LANG}="AMERICAN_AMERICA.UTF8"; - должно быть. Это Вам еще на первой страничке говорили.... до меня.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2013, 12:34 |
|
||
|
[Perl] Не сохраняются турецкие буквы в таблицу Oracle
|
|||
|---|---|---|---|
|
#18+
Vladimir Baskakov, И ведь точно всё дело только в отображении, вы шайтан Владимир, сам я даже до этого не додумался. Получается то что я вижу у себя POLнPORT KнMYA SAN.VE TнC.A.о. (кодировка iso-8859-5) турки увидят в своих клиентах POLİPORT KİMYA SAN.VE TİC.A.Ş. (кодировка cp1254). Ведь я правильно мыслю? А вот с юникодом не получается, я устанавливал кодировку AMERICAN_AMERICA.UTF8 и делал преобразование в utf8 $l_temp_3 = "ĞpşŞğöVÖ"; $l_temp_3 = Encode::decode("cp1254", $l_temp_3); В итоге в поля с типом nvarchar2 и varchar2 вставляется ?p????V? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2013, 13:54 |
|
||
|
[Perl] Не сохраняются турецкие буквы в таблицу Oracle
|
|||
|---|---|---|---|
|
#18+
У меня с турецким юникодом тоже не получилось Код: 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. вставляет GpsSgoVOGpsSgoVO - те убирает диакритические значки (ĞpşŞğöVÖ). Нормальные русские слова нормально вставляет, делая из них нормальный юникод, а турецкий - искажает. Какие настройки глобализации отвечают за вопрос - я не знаю, попробуйте переспросить в разделе оракла. Хорошая новость! вот такая .ctl для SqlLdr Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. правильно загоняет вот такой utf8 текстовый файл изготовленный perl-ом GpsSgoVOĞpşŞğöVÖ Кошка Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Так что вероятно - особенность где-то в слое обработки юникода DBD::Oracle. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2013, 16:07 |
|
||
|
|

start [/forum/topic.php?fid=23&msg=38249347&tid=1463836]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 241ms |
| total: | 372ms |

| 0 / 0 |
