2012-06-11 3 views
1

Во-первых, я признаю, что не являюсь экспертом VB, но меня попросили проверить нашу систему баз данных, заботясь о работе с языками нашего приложения. Проблема в том, что некоторые персонажи с акцентом, похоже, магически преобразуются без них.MS-Access VBA волшебно преобразует строки Unicode?

Например, польское слово «przesunąć» будет храниться как «przesunac» в поле записи во время вызова Recordset.MoveNext. «Сжатие Unicode» установлено в true в этом столбце, но я сомневаюсь, что это связано. Я пытаюсь выяснить, что делает это магическое преобразование, потому что я не хочу этого.

+1

http://support.microsoft.com/default.aspx?scid=kb;en-us;145727 говорит: «Visual Basic предполагает, что мир вне себя по-прежнему использует однобайтную модель ANSI. Любые строки передаются как параметры внешней функции будут преобразованы Visual Basic из их внутреннего представления Unicode в представление ANSI перед вызовом функции. " Это означает, что VB - тот, кто делает магию. Как мне отключить это? –

ответ

3

Кто-то заявил в http://www.pcreview.co.uk/forums/no-unicode-dao-recordset-t1102041.html, что «Набор записей содержит правильные данные, но окно« Отладчик »и всплывающие подсказки не могут отображать строки Unicode». Интересно. Тупой, но интересный.

Хорошо, но почему строки в ANSI в файле? Ну, следующий пост в том же потоке гласит: «Если вы хотите писать в Юникоде с VBA, то я чувствую, что вы должны записывать в двоичном режиме, а не в текстовом режиме». Это привело меня к http://accessblog.net/2007/06/how-to-write-out-unicode-text-files-in.html, где я получил свой окончательный ответ.

Дело решено.

Смежные вопросы