我不斷收到我無法解釋的MSSQL服務器的意外行爲。對Microsoft Server 2012的Unicode查詢返回超額結果
例子: 請求
"""select * from vernacularname where (vernacularname = N'ᐱᓯᐢᑭᐤ')"""
返回正確的結果(ID,vernacularname,語言)
1 ᐱᓯᐢᑭᐤ cr
,還包括其他Unicode名稱的shitload,我不明白他們怎麼連接,如:
1 ܚܝܘܬܐ None
1 ᓂᕐᔪᑦ iu
1 እንስሳ ti
5 ፈንገስ am
6 ᐱᕈᖅᑐᖅ iu
6 ᐅᐲᑭᒋᑳᓇ cr
6 ގަސް dv
212 ᐱᔦᓰᐢ cr
212 ᏥᏍᏆ None
212 ወፍ am
212 བྱ། bo
216 None
216 ሓሽራ ti
359 འུ་འཐུང་སྲོག་ཆགས། bo
359 ጡት አጥቢ am
359 ᐱᓱᒃᑎ iu
360 རྟ་བླ། bo
459 ᎠᏓᏢᎢᎯ None
我正在使用python2.6.5和pyodbc s結束查詢。 (pymssql根本沒有處理unicode查詢)
任何有關錯誤的線索都是值得讚賞的。 非常感謝!
select *
from vernacularname
where (vernacularname COLLATE Latin1_General_BIN = N'ᐱᓯᐢᑭᐤ')
這是SQL Server如何處理比較的結果是:
了Christoph
python 3.1.2顯示相同的行爲。 – Christoph 2014-09-11 13:36:00
剛剛注意到所有結果都以相同的前綴開始,當轉換爲utf-16時。 (但我仍然不知道如何解決這個問題):-( – Christoph 2014-09-11 13:57:17