У меня есть база данных PostgreSQL, которая использует кодировку UTF8. Я считаю, что это кодировка по умолчанию.Как избежать недопустимой последовательности байтов UTF8 в параметризованных SQL-запросах?
У меня есть приложение с графическим интерфейсом, которое выдает типичный запрос SELECT
с предложением WHERE
. Запрос параметризуется, и содержимое параметра обычно вставляется конечным пользователем. Значение не читается из текстового файла и т. Д. - оно вставлено в редактирование заметки.
Вот запрос ...
cmd.CommandText = @"SELECT history_id, emplid, displayname
FROM ""MAX_HISTORY_IDS""
WHERE searchname ILIKE :searchname";
cmd.Parameters.Add("searchname", PgSqlType.VarChar).Value = "Sievert,Jürgen";
В приведенном выше коде, значение параметра, Sievert,Jürgen
, будет переменная разобран из окна редактирования заметок, или ввод текста и т.д. Это имя также является реальным примером имени, вызывающего этот запрос, чтобы вызвать недопустимую ошибку последовательности байтов UTF8, из Postgre.
Теперь я предполагаю, что кодировка UTF8 в базе данных прекрасна и довольно стандартная для такого контента. Что здесь не так? Является ли кодировка этого текстового параметра не UTF8? Как я могу заставить этот запрос работать, или не подходит кодировка в базе данных?