Посмотрим как там у нас в Java. Поехали по порядку...
0. Компоненты должны юзать сведения о кодовых страницах, возвращаемых сервером. Для этого им понадобиться иметь собственный аналог INTL-а. У нас щас поддерживается 49 кодовых страниц. Осталось 3 штуки. 1 простая, 2 замысловатых.
Согласен, поддерживается.
1. Если пользователь работает с ASCII строками - то он должен указать свою кодовую страницу. Компоненты приводят загруженные данные к этой кодовой странице. Если пользователь получает данные в виде UNICODE - то это не актуально. См. #2.
Не актуально, поскольку у нас строки Unicode. Для преобразований char[] <--> byte[] используется специальный параметр для JVM.
2. Компоненты доступа должны уметь привязывать к NONE-колонкам какую нибуть осмысленную кодовую страницу. Например WIN1251.
Согласен, работает.
3. Компоненты должны понимать мульти-чарсетные тексты запросов.
Это как? и что в них особенного?
В NONE подключении строки "с_именем_объекта_БД" должны конвертироваться в UNICODE_FSS (UTF8)
Зачэм?
4. Клиент должен передавать текстовые данные только через параметры. Тогда можно будет их более менее корректно конвертировать. Когда API начнет принимать текст запросов в UNICODE (не зависимо от кодовой страницы подключения), тогда можно будеть на это правило забить. Впрочем, и на правило #3, тогда тоже можно будет забить.
Не совсем понял с "более менее корректно"... У нас тексты запросов передаются в кодовой странице подключения. Если NONE, то там действует правило 2 (явно или неявно).
~400 тыс тестов для всяких извращенных комбинаций кодовых страниц (хранения, подключения, пользователя) вообщем-то гарантируют корректную работу. WIN1251 - точно оттестирован :-)
Ты из сам ручками писал?! Роман

