Выполнение обновления для MySQL с двойным байтом делает поле неправильной строкой

MySQL установлен как UTF-8 (utf8_general_ci: MySQL, таблица, столбец). Я могу SELECT значение varchar как исходный двухбайтовый символ через ADODB и ASP (устаревший сценарий VB). Эти символы вставляются из phpMyAdmin.

Страницы ASP сохраняются как encoding Shift_JIS, а параметр подключения ADODB указывается как dsn=...;APP=ASP Script;STMT=SET CHARACTER SET SJIS;

Но когда я буду ОБНОВЛЯТЬ поле из ASP, обновленная строка varchar имеет NO (опущенный) двухбайтовый символ, но имеет однобайтовый символ в phpMyAdmin.

Как исправить эту проблему с обновлением/вставкой? Я попытался изменить кодировку MySQL на sjis, но это не решило проблему.


person conecon    schedule 19.09.2012    source источник
comment
О боже, какая каша из разнородных технологий!!   -  person Rafael    schedule 19.09.2012


Ответы (1)


Я мог бы решить проблему. Причина рута в SQL.

ОБНОВЛЕНИЕ пользователей SET name = N'aaaa' WHERE id = N'BBB';

Эта буква «N» делает персонажей скучными. Я использовал программу ASP с английской версией MS-SQL Server, и эта буква «N» должна быть прикреплена. Я должен удалить все эти «N» при переходе на MySQL с MS-SQL!

person conecon    schedule 20.09.2012