|
напомните, плз, в каком CHARSET'е выплёвывается сообщение EXCEPTION - UNICODE_FSS?
|
|||
---|---|---|---|
#18+
Собственно, subj. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2018, 14:53 |
|
напомните, плз, в каком CHARSET'е выплёвывается сообщение EXCEPTION - UNICODE_FSS?
|
|||
---|---|---|---|
#18+
ась? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2018, 14:56 |
|
напомните, плз, в каком CHARSET'е выплёвывается сообщение EXCEPTION - UNICODE_FSS?
|
|||
---|---|---|---|
#18+
Мимопроходящий, формирую строку EXCEPTION на кириллице из переменной, а она в IBExpress кракозябрами вылетает. Чот туплю... Какой у переменной должен быть CHARSET? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2018, 15:01 |
|
напомните, плз, в каком CHARSET'е выплёвывается сообщение EXCEPTION - UNICODE_FSS?
|
|||
---|---|---|---|
#18+
Мимопроходящий, CHARSET соединения WIN1251, а строку на кириллице пихал в переменную :msg c CHARSET UTF8. Одна из ХП должна плевать мою строку в виде: EXCEPTION "ID__xConvert" :msg || 'бла-бла-бла'; ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2018, 15:07 |
|
напомните, плз, в каком CHARSET'е выплёвывается сообщение EXCEPTION - UNICODE_FSS?
|
|||
---|---|---|---|
#18+
Перепробовал UTF8, UNICODE_FSS, WIN1251, ISO8859_5 - не помогает. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2018, 15:32 |
|
напомните, плз, в каком CHARSET'е выплёвывается сообщение EXCEPTION - UNICODE_FSS?
|
|||
---|---|---|---|
#18+
rdb_dev, забей, то что ты хочешь не работоспособно. В трёшке кое как выкрутились с USING, но в целом проблема с конвертацией текста эксепшенов собираемых пользователями из переменных разных кодировок в нужный чарсет не решена. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2018, 15:38 |
|
напомните, плз, в каком CHARSET'е выплёвывается сообщение EXCEPTION - UNICODE_FSS?
|
|||
---|---|---|---|
#18+
Симонов Денис, печально... И на том спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2018, 15:40 |
|
напомните, плз, в каком CHARSET'е выплёвывается сообщение EXCEPTION - UNICODE_FSS?
|
|||
---|---|---|---|
#18+
пиши всё на английском. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2018, 15:52 |
|
напомните, плз, в каком CHARSET'е выплёвывается сообщение EXCEPTION - UNICODE_FSS?
|
|||
---|---|---|---|
#18+
В общем, мне удалось! Сразу прошу прощения, что в самом начале маленько наврал с CHARSET'ом подключения, который у меня в IBExpert оказался UTF8, а не WIN1251. При WIN1251 сообщение на кириллице от исключения прилетало вполне читаемым. Не суть... Мне удалось сделать так, что теперь сообщение прилетает читаемым при любом CHARSET'е подключения - хоть UTF8, хоть WIN1251, но с условием, что известен CHARSET по умолчанию ОС клиента. Код: sql 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.
При желании можно сделать, чтобы клиентский софт устанавливал контекстную переменную с указанием CHARSET'а ОС по умолчанию, а строка сообщения бралась из таблицы по ключу указанного CHARSET'а с заворачиванием конвертации в EXECUTE STATEMENT, на выходе которого будет BLOB CHARACTER SET NONE. Резюмирую: проблема нечитаемых сообщений исключений кроется не в сервере, а в клиенте. Когда мы в EXCEPTION указываем строку в какой-либо кодировке, то она преобразуется к кодировке по умолчанию БАЗЫ ДАННЫХ, а на клиенте интерпретируется как строка с CHARACTER SET NONE. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2018, 12:23 |
|
напомните, плз, в каком CHARSET'е выплёвывается сообщение EXCEPTION - UNICODE_FSS?
|
|||
---|---|---|---|
#18+
rdb_dev, жесть конечно. Я думаю тут можно и без второй ХП обойтись ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2018, 12:36 |
|
напомните, плз, в каком CHARSET'е выплёвывается сообщение EXCEPTION - UNICODE_FSS?
|
|||
---|---|---|---|
#18+
Симонов Денис, наверно можно, если Cast из VARCHAR к BLOB нормально отработает. Кажется, я в резюме немного ошибся - строка EXCEPTION конвертируется не к кодировке БД, а к кодировке подключения. То есть. На сколько я понимаю, достаточно в fbclient интерпретировать строку исключения не как строку в кодировке NONE, а как строку в кодировке подключения. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2018, 12:52 |
|
напомните, плз, в каком CHARSET'е выплёвывается сообщение EXCEPTION - UNICODE_FSS?
|
|||
---|---|---|---|
#18+
rdb_dev, во первых блоб там не к чему ибо длина сообщения эксепшена и так ограничена. Вроде как 1023 байтами Во вторых всю конвертацию можно сделать непосредственно в той процедуре где исключение бросается. Достаточно всего лишь конвертировать через дополнительную локальную переменную ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2018, 13:01 |
|
напомните, плз, в каком CHARSET'е выплёвывается сообщение EXCEPTION - UNICODE_FSS?
|
|||
---|---|---|---|
#18+
Симонов Денис, без BLOB'а вылетает malformed string. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2018, 13:03 |
|
напомните, плз, в каком CHARSET'е выплёвывается сообщение EXCEPTION - UNICODE_FSS?
|
|||
---|---|---|---|
#18+
Симонов ДенисВо вторых всю конвертацию можно сделать непосредственно в той процедуре где исключение бросается. Достаточно всего лишь конвертировать через дополнительную локальную переменнуюМне не хотелось в выстреливающей исключение ХП делать кучу BEGIN...END, ухудшающих читаемость. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2018, 13:06 |
|
напомните, плз, в каком CHARSET'е выплёвывается сообщение EXCEPTION - UNICODE_FSS?
|
|||
---|---|---|---|
#18+
rdb_dev, может я что-то не так делаю. Мне ни разу не удалось воспроизвести твою проблему. Везде вижу нормальный русский текст безо всяких приседаний с ХП и конвертацией в BLOB ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2018, 13:56 |
|
напомните, плз, в каком CHARSET'е выплёвывается сообщение EXCEPTION - UNICODE_FSS?
|
|||
---|---|---|---|
#18+
Симонов Денис, у тебя кодировка подключения WIN1251 или UTF8? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2018, 14:14 |
|
напомните, плз, в каком CHARSET'е выплёвывается сообщение EXCEPTION - UNICODE_FSS?
|
|||
---|---|---|---|
#18+
rdb_dev, и так и так пробовал (3.0, 4.0). Давай скрипт воспроизведения. Может придумаю как более просто сделать ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2018, 14:20 |
|
напомните, плз, в каком CHARSET'е выплёвывается сообщение EXCEPTION - UNICODE_FSS?
|
|||
---|---|---|---|
#18+
Симонов Денис, у меня: Код: plsql 1.
выдает 2.5.9 :) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2018, 14:25 |
|
напомните, плз, в каком CHARSET'е выплёвывается сообщение EXCEPTION - UNICODE_FSS?
|
|||
---|---|---|---|
#18+
rdb_dev, ты скрипт воспроизведения дай. Не обязательно целиком твою секретную процедуру. Просто минимальный скрипт для воспроизведения ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2018, 14:29 |
|
напомните, плз, в каком CHARSET'е выплёвывается сообщение EXCEPTION - UNICODE_FSS?
|
|||
---|---|---|---|
#18+
Симонов Денис, процедуру не дам, потому как зависимостей дофига, а воспроизведение - пожалуйста: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Кодировка БД по умолчанию и кодировка подключения UTF8, версия FirebirdSQL сервера WI-V6.3.9.27110, версия клиента (fbclient) 2.5.9.27110, версия IBExpert'а 2018.11.1.2, кодировка файла скрипта "UTF8 (with BOM)". ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2018, 14:55 |
|
напомните, плз, в каком CHARSET'е выплёвывается сообщение EXCEPTION - UNICODE_FSS?
|
|||
---|---|---|---|
#18+
Насколько я помню, текст исключений - единственное поле в системных таблицах с кодировкой NONE. Посему как туда что записали, так оно там и лежит. Когда это извлекается, оно никуда не приводится и передаётся клиенту как есть. Клиент, есс-но не знает, как интерпретировать строки в NONE. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2018, 15:00 |
|
напомните, плз, в каком CHARSET'е выплёвывается сообщение EXCEPTION - UNICODE_FSS?
|
|||
---|---|---|---|
#18+
hvladКлиент, есс-но не знает, как интерпретировать строки в NONE.Естественно! Но в строке сообщения по умолчанию для исключения у меня только символы ASCII "ID's conversion exception", а при выстреле EXCEPTION подставляется строка на кириллице. Причем, совершенно не важно, будет ли строковая переменная msg в кодировке UTF8 или WIN1251 - строка на сервере всё равно будет приведена к кодировке подключения, а на клиенте будет воспринята как строка с кодировкой NONE. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2018, 15:13 |
|
напомните, плз, в каком CHARSET'е выплёвывается сообщение EXCEPTION - UNICODE_FSS?
|
|||
---|---|---|---|
#18+
hvlad, не единственное (RDB$ENTRYPOINT, RDB$FILE_NAME), но они вроде не мешают ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2018, 15:16 |
|
напомните, плз, в каком CHARSET'е выплёвывается сообщение EXCEPTION - UNICODE_FSS?
|
|||
---|---|---|---|
#18+
Симонов Денис, воспроизводится? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2018, 15:19 |
|
напомните, плз, в каком CHARSET'е выплёвывается сообщение EXCEPTION - UNICODE_FSS?
|
|||
---|---|---|---|
#18+
rdb_dev, да. Ну как я и говорил. С исключениями пока всё плохо. А твои выкрутасы может и спасают но выглядят как кривой костыль. Каждый раз создавать временный блоб как то стрёмно. hvlad, в Firebird 4.0 ничего насчёт исключений не думали? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2018, 15:41 |
|
|
start [/forum/topic.php?fid=40&msg=39730689&tid=1559974]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
38ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 152ms |
0 / 0 |