Sqlite

將單獨的 unicode 字元匹配為一個

  • March 14, 2016

我正在編寫一個 C# 程序,並且正在查詢一個 SQLite 數據庫。我有多個變音字元(e.g ã, õ, ó, ê)需要在搜尋中匹配。我有命令

"SELECT * FROM DesanoDict1 WHERE Desano LIKE '%" + string + "%' ORDER BY Desano ASC"

但是,我遇到的問題是這些變音字元作為單獨的字元輸入(即 ã 是 a + ~)。我可以使用單個 unicode 字元(作為一個而不是兩個單獨的字元)製作一個自定義鍵盤,但是將使用該程序的使用者可能會使用與我目前使用的鍵盤相同或相似的鍵盤,所以它只會產生問題。我對數據庫和查詢非常陌生,因此非常感謝您提供任何幫助。

Unicode 是一頭複雜的野獸,數據庫引擎往往充其量只是膚淺地意識到它。他們當然不傾向於知道序列等價。

我建議確保您以一致的規範化形式儲存數據,並在搜尋之前以相同的方式規範化搜尋參數。我不是真正的 ac# 人,但https://msdn.microsoft.com/en-us/library/ebza6ck1(v=vs.110).aspx看起來是一個不錯的起點來了解如何去做。

顯然,您將擁有未規範化的現有數據,因此如果您使用這條路線,您需要編寫一些東西來掃描數據並根據需要用規範化版本替換字元串值。

引用自:https://dba.stackexchange.com/questions/132189