1
我有一個使用UTF8編碼的PostgreSQL數據庫。我相信這是默認編碼。如何在參數化SQL查詢中避免無效的UTF8字節序列?
我有一個GUI應用程序,發出一個典型的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
,將是一個變量解析一份備忘錄編輯框,或文本輸入等該名稱的也是導致這個查詢導致Postgre無效的UTF8字節序列錯誤的名稱的真實例子。
現在,我假設數據庫上的UTF8編碼很好,並且對於這種類型的內容非常標準。這裏有什麼問題?該文本參數的編碼不是UTF8嗎?我怎樣才能使這個查詢工作,或者是數據庫上的編碼不適合?