|
Кодировка текста ошибки
|
|||
---|---|---|---|
#18+
При открытии залоченного файла получил ошибку. Чтобы получить текст ошибки, вызвал fb_interpret. Понял что текст в виндовой кодировке сервера. Хочу правильно показать текст ошибки на клиенте. Как на клиенте узнать в какой кодировке приходят ошибки? ConvertBytesToUnicodeString(fb_interpret, GetWindowsACP) Код: plaintext 1. 2. 3. 4. 5.
Ещё если в ошибке есть имена таблиц, полей, ограничений, то в тексте ошибки они приходят в utf-8. Как в общем виде можно решить задачу корректного отображения текста ошибки на клиенте? Клиент юникодный. ConverUtf8tBytesToUnicodeString(fb_interpret) Код: plaintext 1. 2. 3. 4.
Можно ли как-то сказать серверу чтобы он отдавал текст ошибки не в виндовой кодировке сервера, а в utf-8? И чтобы текст ошибки брал не из активной кодовой страницы, а хотя бы из 1252? FB 3.0.1 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2017, 11:15 |
|
Кодировка текста ошибки
|
|||
---|---|---|---|
#18+
В большинстве случаев (за исключением некоторых багов) текст ошибки выводится в кодировке подключения. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2017, 11:42 |
|
Кодировка текста ошибки
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovВ большинстве случаев (за исключением некоторых багов) текст ошибки выводится в кодировке подключения. Я ищу хорошее решение. В том числе и для services api. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2017, 12:08 |
|
Кодировка текста ошибки
|
|||
---|---|---|---|
#18+
FastBaseDevЯ ищу хорошее решение. В том числе и для services api. Указание правильного чарсета подключения это и есть хорошее решение. В том числе и для services api. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2017, 12:14 |
|
Кодировка текста ошибки
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovУказание правильного чарсета подключения это и есть хорошее решение. Чарсет подключения UTF8. Если перекодировать в UTF8, то получается: First chance exception at $75F4C54F. Exception class EUIBError with message 'I/O error during "CreateFile (open)" operation for file "D:\����.fb" Error while trying to open file ������� �� ����� �������� ������ � �����, ��� ��� ���� ���� ����� ������ ���������. Unsuccessful execution caused by a system error that precludes successful execution of subsequent statements А если перекодировать в 1251, то: First chance exception at $75F4C54F. Exception class EUIBError with message 'I/O error during "CreateFile (open)" operation for file "D:\База.fb" Error while trying to open file Процесс не может получить доступ к файлу, так как этот файл занят другим процессом. Unsuccessful execution caused by a system error that precludes successful execution of subsequent statements По какому принципу одни ошибки кодируются в utf-8, а другие нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2017, 14:39 |
|
Кодировка текста ошибки
|
|||
---|---|---|---|
#18+
FastBaseDevЧарсет подключения UTF8. Если перекодировать в UTF8, то получается: А можно писать как-то сразу на русском? У вас подключение UTF8, то есть вы ошибку получаете какой-то кодировке и после этого UTF8 ещё раз перекодируете в UTF8? Пришлось несколько раз перечитать ветку, чтобы понять что имелось в виду. А родная кодировка базы какая? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2017, 15:14 |
|
Кодировка текста ошибки
|
|||
---|---|---|---|
#18+
alekcvpFastBaseDevЧарсет подключения UTF8. Если перекодировать в UTF8, то получается: А можно писать как-то сразу на русском?Я конечно не перекодирую в UTF8. Очень криво написал, согласен. Я перекодирую из того что пришло. В одних ошибках текст приходит в UTF8, в других в 1251. И я не пойму как с этим работать. alekcvpА родная кодировка базы какая?UTF8. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2017, 15:34 |
|
Кодировка текста ошибки
|
|||
---|---|---|---|
#18+
alekcvpFastBaseDevЧарсет подключения UTF8. Если перекодировать в UTF8, то получается: А можно писать как-то сразу на русском? Первое сообщение кстати сразу на понятном русском :) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2017, 15:47 |
|
Кодировка текста ошибки
|
|||
---|---|---|---|
#18+
FastBaseDevВ одних ошибках текст приходит в UTF8, в других в 1251. И я не пойму как с этим работать. Поскольку мой юникодный патч отвергли - никогда не использовать ничего кроме латинских букв в именах файлов и объектов БД. И использовать исключительно ANSI кодировку для подключения. Ну или патчить клиент чтобы он Win32 ошибки расшифровывал в unicode. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2017, 15:59 |
|
Кодировка текста ошибки
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovFastBaseDevВ одних ошибках текст приходит в UTF8, в других в 1251. И я не пойму как с этим работать. Поскольку мой юникодный патч отвергли - никогда не использовать ничего кроме латинских букв в именах файлов и объектов БД. Пользователям про имена файлов я на сайте написал, но думал что это исправится в четвёрке. Теперь понимаю что нет. Жалко конечно отказываться от Firebird, но что делать? Остаётся только смириться и искать другие варианты. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2017, 16:53 |
|
Кодировка текста ошибки
|
|||
---|---|---|---|
#18+
FastBaseDevОстаётся только смириться и искать другие варианты. Ищи. Оракул рекомендую. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2017, 18:08 |
|
Кодировка текста ошибки
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovНу или патчить клиент чтобы он Win32 ошибки расшифровывал в unicode. А он их разве не конвертирует в charset подключения? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2017, 18:25 |
|
Кодировка текста ошибки
|
|||
---|---|---|---|
#18+
alekcvpА он их разве не конвертирует в charset подключения? Нет. Нечем. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2017, 18:29 |
|
Кодировка текста ошибки
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovFastBaseDevОстаётся только смириться и искать другие варианты. Ищи. Оракул рекомендую. Интуиция подсказывает SQLite. И не принимать ваши посты всерьез. Интересно почему... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2017, 18:33 |
|
Кодировка текста ошибки
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovalekcvpА он их разве не конвертирует в charset подключения? Нет. Нечем. Windows клиенту нечем?.. У винды полно APIшек для работы с кодировками. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2017, 18:42 |
|
Кодировка текста ошибки
|
|||
---|---|---|---|
#18+
alekcvpWindows клиенту нечем?.. У винды полно APIшек для работы с кодировками. Но у него нет главного: знания из какого коннекта пришёл конкретный статус-вектор и какой кодовой странице соответствует его чарсет. Этого даже я в своём патче не сделал. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2017, 18:47 |
|
Кодировка текста ошибки
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovalekcvpWindows клиенту нечем?.. У винды полно APIшек для работы с кодировками. Но у него нет главного: знания из какого коннекта пришёл конкретный статус-вектор и какой кодовой странице соответствует его чарсет. Этого даже я в своём патче не сделал. То есть он никаких "хэндлов" не сохраняет при соединении с сервером, а только транслирует запросы туда-обратно? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2017, 19:58 |
|
Кодировка текста ошибки
|
|||
---|---|---|---|
#18+
alekcvpЖалко конечно отказываться от Firebird, но что делать? что-то никто не написал, что указанное сообщение приходит НЕ от Firebird, а от операционной системы. Firebird в данном случае просто транслирует это сообщение, ему пофиг что там написано и в какой оно кодировке. Получил - передал. Так что вы жалуетесь на винду, а отказаться хотите от ФБ, так? :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2017, 12:36 |
|
Кодировка текста ошибки
|
|||
---|---|---|---|
#18+
перепутал автора сообщения, извините. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2017, 12:36 |
|
Кодировка текста ошибки
|
|||
---|---|---|---|
#18+
[quot kdv]alekcvp...указанное сообщение приходит НЕ от Firebird, а от операционной системы. Firebird в данном случае просто транслирует это сообщение, ему пофиг что там написано и в какой оно кодировке. Получил - передал. ... А нет ли возможности организовать на серверной стороне (перед передачей сообщения клиенту), силами FB, перекодирование в кодировку коннекта клиента из кодировки локали ОС сервера? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2017, 12:49 |
|
Кодировка текста ошибки
|
|||
---|---|---|---|
#18+
kdvТак что вы жалуетесь на винду, а отказаться хотите от ФБ, так? :-) Ну винда всегда все сообщения выдаёт либо в UTF-16, либо в WinXXXX. А птичка может работать с разными кодировками и позволяет выбирать с какой ты хочешь работать, поэтому было бы логично и ожидаемо, если бы она при этом ВСЕ сообщения выдавала в выбранной кодировке. А то по такой логике: зачем тогда текст из таблиц перекодировать? В какой кодировке данные в базе хранятся - пусть в такой и выдаёт приложению, а вы там сами разбирайтесь. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2017, 13:19 |
|
Кодировка текста ошибки
|
|||
---|---|---|---|
#18+
Ну или в fb_interpret (или какая там функция формирует текст ошибки?) передавать параметр - желаемую кодировку, и чтобы он там перекодировал сообщения винды в нужную кодировку. Ведь проблема в том, что кодировку сообщения наше приложение знает, в отличие от клиентской библиотеки, но перекодировать уже сформированное сообщение с разными кодировками - это велосипед с квадратными колёсами. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2017, 13:22 |
|
Кодировка текста ошибки
|
|||
---|---|---|---|
#18+
kdvalekcvpЖалко конечно отказываться от Firebird, но что делать? что-то никто не написал, что указанное сообщение приходит НЕ от Firebird, а от операционной системы. Я написал в третьем предложении первого сообщения. kdvТак что вы жалуетесь на винду, а отказаться хотите от ФБ, так? :-) А как мне объяснить пользователю что после нажатия "Save As..." ему можно указывать имя файла только английскими или символами из локали винды? И ещё я использую для работы с временными файлами "C:\Users\%USER_NAME%\AppData\Local\", как все нормальные люди. А Firebird с такими путями работать не умеет если в %USER_NAME% юникод или не ансишный символ. Я люблю Firebird, но здравый смысл я люблю больше. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2017, 13:34 |
|
Кодировка текста ошибки
|
|||
---|---|---|---|
#18+
FastBaseDevА как мне объяснить пользователю что после нажатия "Save As..." ему можно указывать имя файла только английскими или символами из локали винды? "Save As..." и клиент-сервер? Ты реально сделал плохой выбор. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2017, 13:55 |
|
Кодировка текста ошибки
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovFastBaseDevА как мне объяснить пользователю что после нажатия "Save As..." ему можно указывать имя файла только английскими или символами из локали винды? "Save As..." и клиент-сервер? Ты реально сделал плохой выбор. Дмитрий, у меня программа умеет работать с базами как с файлами (вспомните Access). И ещё она умеет работать по сети, если нужно (без использования сетевого протокола Firebird) И ещё умеет в многосерверной конфигурации с синхронизацией, если нужно. "Save As..." есть только в первом случае, где с файлами идёт работа как в Access. И это наиболее распространённый сценарий использования. Очень удобно открывать файлы по двойному щелчку, или прям из интернета: Пример с сайта не откроется на большинстве компьютеров с виндой. Просто из-за имени файла. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2017, 14:34 |
|
|
start [/forum/topic.php?fid=40&fpage=43&tid=1561487]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
3ms |
track hit: |
42ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
others: | 17ms |
total: | 162ms |
0 / 0 |