|
|
|
Проблема с кодировкой в cookie
|
|||
|---|---|---|---|
|
#18+
Привет. Есть 101 страница авторизации APEX. Там делаются стандартные вещи: Сначала процесс Before header: где что то вроде этого DECLARE c owa_cookie.cookie; BEGIN c := owa_cookie.get('LOGIN_USERNAME_COOKIE'); :P101_USERNAME := c.vals(1); ...... А после сабмита что то вроде этого: BEGIN OWA_UTIL.MIME_HEADER('text/html', FALSE); OWA_COOKIE.SEND( name => 'LOGIN_USERNAME_COOKIE', value => LOWER(:P101_USERNAME), expires => SYSDATE + 90 ); Проблема в том что с латиницей все нормально. Куки сохраняются подставляются и все отлично. Но когда я использую в качестве логина русские буквы, например "Вася", то сохраняется в куки вот такое безобразие "????". Я пробовал подменить P101_USERNAME на P101_USERNAME_TEST, в котором содержится: encodeURIComponent($('#P101_USERNAME').val()); BEGIN OWA_UTIL.MIME_HEADER('text/html', FALSE); OWA_COOKIE.SEND( name => 'LOGIN_USERNAME_COOKIE', value => LOWER(:P101_USERNAME_TEST), expires => SYSDATE + 90 ); Получаю ошибку: ORA-20987: APEX - An unexpected internal application error has occurred. Please get in contact with your system administrator and provide reference# for further investigation Быть может я не совсем до конца понимаю работу функции OWA_COOKIE.SEND Натолкните плиз на правильную дорожку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2015, 17:04 |
|
||
|
Проблема с кодировкой в cookie
|
|||
|---|---|---|---|
|
#18+
zaumanf11, я попробовал на Chrome and FireFox, нет проблем с русскими буквами. И в куках они лежат корректно и считывает он их оттуда правильно. И процедуры стандартные я не менял ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2015, 17:15 |
|
||
|
Проблема с кодировкой в cookie
|
|||
|---|---|---|---|
|
#18+
А у Вас версия какая? У меня Application Express 4.2.4.00.08 Быть может в ней дело. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2015, 17:21 |
|
||
|
Проблема с кодировкой в cookie
|
|||
|---|---|---|---|
|
#18+
zaumanf11, У меня 4.2.5, мне кажется тут проблема не Апекса. А OS, Браузер. Проведите эксперимент, попробуйте без апекса записать куки и считать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2015, 17:26 |
|
||
|
Проблема с кодировкой в cookie
|
|||
|---|---|---|---|
|
#18+
У меня они в куках тоже корректно лежат, если я document.cookie = "LOGIN_USERNAME_COOKIE=Вася" сделаю. А следает все на знаки вопроса после того как вот это выполняется: OWA_COOKIE.SEND( name => 'LOGIN_USERNAME_COOKIE', value => LOWER(:P101_USERNAME), expires => SYSDATE + 90 ); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2015, 17:26 |
|
||
|
Проблема с кодировкой в cookie
|
|||
|---|---|---|---|
|
#18+
zaumanf11У меня они в куках тоже корректно лежат, если я document.cookie = "LOGIN_USERNAME_COOKIE=Вася" сделаю. А следает все на знаки вопроса после того как вот это выполняется: OWA_COOKIE.SEND( name => 'LOGIN_USERNAME_COOKIE', value => LOWER(:P101_USERNAME), expires => SYSDATE + 90 ); У меня такая Код: plsql 1. 2. 3. 4. 5. 6. 7. Может красного не хватает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2015, 17:28 |
|
||
|
Проблема с кодировкой в cookie
|
|||
|---|---|---|---|
|
#18+
нее.. :( То что красненьким - это есть... Там даже в первом моем посте видно сразу после begin Один в один как у Вас. Чудеса какие то. Вот если сделать так: document.cookie = "LOGIN_USERNAME_COOKIE=Вася" То в браузере, там в настройках в хроме можно посмотреть. И он нормально выставляется без проблем в кириллице. Я обновляю страницу, срабатывает процесс который Before header и совершенно нормально подтягивает русское слово из этого кука. Но как только делается BEGIN OWA_UTIL.MIME_HEADER('text/html', FALSE); OWA_COOKIE.SEND( name => 'LOGIN_USERNAME_COOKIE', value => LOWER(:P101_USERNAME), expires => SYSDATE + 90 ); Всё. Одни знаки вопросов записываются в кук. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2015, 17:36 |
|
||
|
Проблема с кодировкой в cookie
|
|||
|---|---|---|---|
|
#18+
zaumanf11, Проверьте, : 1. страницы апекса выводятся в кодировке utf-8 2. Что будет, если вместо :P101_USERNAME подставить русский текст ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2015, 19:36 |
|
||
|
Проблема с кодировкой в cookie
|
|||
|---|---|---|---|
|
#18+
SvDev, По второму пункту: Если поставить русский текст вместо :P101_USERNAME, то после сабмита я получаю знаки вопросиков в куке. Количество знаков вопроса равно количеству подставленных русских символов. Соответственно после обновления страницы эти знаки вопросиков подтягиваются в поле из куков. (( Если подставить латинские символы, вместо :P101_USERNAME, то они нормально сохраняются как надо и подтягиваются в поле - проблем нет. По первому пункту: К сожалению не знаю как посмотреть в какой кодировке выводятся страницы апекса. Подскажите пожалуйста как посмотреть - я гляну. Но отмечу, что если я в куку явно из консоли браузера указываю: document.cookie = "LOGIN_USERNAME_COOKIE=Вася" то "Вася" нормально записывается в куку и даже в поле подтягивается нормально - "Вася", а не знаки вопросов. Т.е. проблема явно происходит в момент owa_cookie.send Еще я выяснил что селект select * from nls_database_parameters выдает: NLS_LANGUAGE AMERICAN NLS_TERRITORY AMERICA ..поэтому по совету коллег я попробовал сделать перед owa_cookie.send, так: EXECUTE IMMEDIATE 'alter session set NLS_TERRITORY=''UNITED KINGDOM'''; ...и не получил никаких изменений в поведении. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2015, 11:24 |
|
||
|
Проблема с кодировкой в cookie
|
|||
|---|---|---|---|
|
#18+
zaumanf11, Это все не то, нужно посмотреть именно кодировку HTML страницы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2015, 11:36 |
|
||
|
Проблема с кодировкой в cookie
|
|||
|---|---|---|---|
|
#18+
Возможно речь идет о том что установлено между тегами head в htmlкоде страницы? там есть такая строка <meta charset="utf-8"> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2015, 11:47 |
|
||
|
Проблема с кодировкой в cookie
|
|||
|---|---|---|---|
|
#18+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2015, 11:55 |
|
||
|
Проблема с кодировкой в cookie
|
|||
|---|---|---|---|
|
#18+
zaumanf11, Например, в Firefox, отобразить панель меню, вид > кодировка поменять с автоопределения на utf-8, если отобразилось норм, значит utf8 И ещё покажите select * from v$version ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2015, 11:56 |
|
||
|
Проблема с кодировкой в cookie
|
|||
|---|---|---|---|
|
#18+
Выставил в браузере UTF-8 Ничего не изменилось, знаки вопросов (( Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production PL/SQL Release 11.2.0.4.0 - Production CORE 11.2.0.4.0 Production TNS for Linux: Version 11.2.0.4.0 - Production NLSRTL Version 11.2.0.4.0 - Production ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2015, 12:09 |
|
||
|
Проблема с кодировкой в cookie
|
|||
|---|---|---|---|
|
#18+
zaumanf11, Нужно было только посмотреть кодировку, ну ок. проблема судя по всему здесь: http://docs.oracle.com/cd/E11882_01/appdev.112/e40758/w_cook.htm#ARPLS70666 Using OWA_COOKIE Rules and Limits All HTTP headers must be in English and the ASCII character set. If the headers are generated from the database, verify they are created in the English language. Попробуйте применить utl_url.escape к LOWER(:P101_USERNAME) перед передачей в куку. Если кодировка базы не UTF-8, 3-тий параметр url_charset установите в UTF-8 Код: sql 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2015, 12:40 |
|
||
|
Проблема с кодировкой в cookie
|
|||
|---|---|---|---|
|
#18+
SvDev, спасибо огромное!!! Теперь работает! При помощи этой функции сохраняет васю в виде "%D0%B2%D0%B0%D1%81%D1%8F" и в before header я когда читаю куку, обратно функцией unescape русские буквы возвращаю. Большое при большое спасибо! blkangel, Вам тоже спасибо что откликнулись! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2015, 13:15 |
|
||
|
|

start [/forum/topic.php?fid=50&msg=38882807&tid=1875082]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
142ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
70ms |
get tp. blocked users: |
1ms |
| others: | 245ms |
| total: | 501ms |

| 0 / 0 |
