У меня есть классическая ASP-страница, на которую помещается POST. Данные отправляются как UTF-8 (я вижу это в Fiddler). Затем я открываю соединение ADODB с базой данных и сохраняю данные в поле VARCHAR. Если данные могут быть представлены как 8859-1 (например, iñtërnâtiônàlizætiøn), они правильно хранятся в поле varchar. Если я пробую строки, которые не могут быть сопоставлены с 8859 (например, Здравствуйте!), Я получаю ?????????????!. Все это имеет смысл, поскольку поле varchar не может содержать Unicode. Я также понимаю, что использование поля nvarchar должно позволить мне хранить строки utf-8.
Мой вопрос такой. Какие параметры в SQL Server или в объекте ADODB управляют преобразованием строк из UTF-8 в 8859-1? VBScript (ASP) отправляет строки в ADODB.Connection.Execute как UTF-8 (или, как я думаю, на самом деле это делает - UTF-16) и сама база данных обрабатывает преобразование? Управляется ли это сопоставлением базы данных (в данном случае SQL_Latin1_General_CP1_CI_AS)?