私はこのSQLコードを持っています
declare @s varchar(8000) = 'manoeuvre'
select CHARINDEX(char(140), @s, 0)
char(140) = ā であり、文字列 'manoeuvre' には存在しません。まだSQLサーバーは次を返します
4 (この行に char(140) があることを示します)
「Œ」を「*」に置き換えると、
マン*ウブレ
SQL が 'o' と 'e' を 1 文字に置き換えたようですが、なぜですか? 'oe' を 'ā' に置き換えるのはなぜですか?
文字列 'mass' と 'ß' で同じ効果が見られます (これは double のドイツ語だと思います)。この文字を置換すると、文字列「ma*」が返されます。
SQL は隠れて何か「賢い」ことをしようとしていますか?
追加情報を編集:
SQL サーバー 2008 R2。
データベースの照合順序は、Latin1_General_CI_AS です。