Гость
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Кодировка скрипта / 8 сообщений из 8, страница 1 из 1
28.04.2020, 19:47
    #39952534
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка скрипта
Сравниваю через Database Comparer две базы. Обе в кодировке Win1251. По завершению сравнения формируется скрипт. В начале скрипта вставляется
Код: sql
1.
2.
3.
4.
5.
6.
7.
SET NAMES WIN1251;

SET SQL DIALECT 3;

CONNECT .....;

SET AUTODDL ON;


Если потом сохранить скрипт, то он, по умолчанию, сохраняется в UTF-8. Если забыть поменять кодировку в окне сохранения, то можно потерять строки в кириллице (например, описания полей).

Может можно анализировать кодировку подключения и по умолчанию выставлять кодировку сохранения ANSI?

С уважением, Vasilisk
...
Рейтинг: 0 / 0
29.04.2020, 05:10
    #39952669
IBExpert
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка скрипта
_Vasilisk_

Если потом сохранить скрипт, то он, по умолчанию, сохраняется в UTF-8. Если забыть поменять кодировку в окне сохранения, то можно потерять строки в кириллице (например, описания полей).

Может можно анализировать кодировку подключения и по умолчанию выставлять кодировку сохранения ANSI?


Ну, во-первых, потерять строки в кириллице при сохранении в юникоде невозможно. Вот наоборот - запросто.
Во-вторых, пора уже использовать UTF8 для коннектов, даже если в базе лежит 1251. Тогда в скрипте будет SET NAMES UTF8.
И, наконец, в event block "Code editor : Before save to file" можно поменять кодировку сохранения, если все равно хочется сохранять в ANSI.
...
Рейтинг: 0 / 0
29.04.2020, 10:47
    #39952740
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка скрипта
IBExpert
потерять строки в кириллице при сохранении в юникоде невозможно
У меня посыпались DESCRIPTION полей. Скрипт был сохранен в UTF-8, потом был загружен в IBExpert и выполнен. В базе покорежились эти DESCRIPTION. Я так понимаю, что он был сохранен в UTF-8, а загружен, из-за отсутствия BOM в ANSI. Т.е. фактически проблема в невозможности определить кодировку при загрузке. Может стоит убрать сохранение без BOM?
IBExpert
в event block "Code editor : Before save to file" можно поменять кодировку сохранения
Спасибо
...
Рейтинг: 0 / 0
29.04.2020, 15:54
    #39952905
IBExpert
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка скрипта
_Vasilisk_
У меня посыпались DESCRIPTION полей. Скрипт был сохранен в UTF-8, потом был загружен в IBExpert и выполнен. В базе покорежились эти DESCRIPTION. Я так понимаю, что он был сохранен в UTF-8, а загружен, из-за отсутствия BOM в ANSI. Т.е. фактически проблема в невозможности определить кодировку при загрузке.


Нет такой проблемы, см. скриншот. На нем загружен файл с автоопределением кодировки по BOM, но BOM в нем нет. Эксперт и без BOM проверяет содержимое файла на UTF8.
Желтым выделил то, что напрямую влияет на то, как данные из редактора будут скармливаться серверу - в ANSI или UTF8.
Ну и если кратко, то если коннект WIN1251 и в редакторе кириллица видна нормально - execute charset должен быть ANSI.
...
Рейтинг: 0 / 0
29.04.2020, 17:24
    #39952951
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка скрипта
IBExpert
Нет такой проблемы,
Я на нее нарвался. Единственно что скрипт проводил не я, так, что подробностей проведения не очень знаю. Эксперт был не самый свежий, но за этот год.

Единственное, что могу сказать, в скрипте, при его загрузке, не было SET NAMES. Оно было добавлено позже при выполнении Add Connect Statement
...
Рейтинг: 0 / 0
29.04.2020, 18:01
    #39952977
IBExpert
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка скрипта
_Vasilisk_
Я на нее нарвался.


Или не на нее. Можешь сам попробовать загрузить UTF8-файл без BOM в редактор скриптов. Должен получить запрос как на скриншоте.
Подозреваю, что файл загрузился как надо, а вот execute charset стоял UTF8.
...
Рейтинг: 0 / 0
29.04.2020, 19:26
    #39953033
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка скрипта
IBExpert
а вот execute charset стоял UTF8.
Его точно никто не менял. По умолчанию там вроде ANSI?
...
Рейтинг: 0 / 0
30.04.2020, 07:21
    #39953155
IBExpert
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка скрипта
_Vasilisk_
Его точно никто не менял. По умолчанию там вроде ANSI?


Посмотри в настройках, что там по умолчанию установлено.
...
Рейтинг: 0 / 0
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Кодировка скрипта / 8 сообщений из 8, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]