“?” 通过 SQL Server 2008 查询时转换为“c”

Cur*_*urt 4 sql-server multilingual sql-server-2008

当选择/插入到我的 SQL Server 2008 数据库中时,正在转换中欧字符。

\n\n

例如:

\n\n
Select \'Kuteni\xc4\x8d\'\n
Run Code Online (Sandbox Code Playgroud)\n\n

返回:

\n\n
Kutenic\n
Run Code Online (Sandbox Code Playgroud)\n\n

\n\n

为什么是这样?我怎样才能防止这种情况发生?我的 ASP.NET Web 应用程序也会遇到类似的问题吗?

\n

Mar*_*ith 6

使用N前缀

\n\n
Select N'Kuteni\xc4\x8d'\n
Run Code Online (Sandbox Code Playgroud)\n\n

如果没有它,字符串将被转换为数据库默认排序规则的代码页。

\n\n

或者,如果更适合您的区域设置,则将数据库的默认排序规则设置为以下之一。

\n\n
Albanian_X\nAlbanian_100_X\nBosnian_Latin_100_X\nCroatian_X\nCroatian_100_X\nCzech_X\nCzech_100_X\nEstonian_X\nEstonian_100_X\nHungarian_X\nHungarian_100_X\nHungarian_Technical_X\nHungarian_Technical_100_X\nLatvian_X\nLatvian_100_X\nLithuanian_X\nLithuanian_100_X\nPolish_X\nPolish_100_X\nRomanian_X\nRomanian_100_X\nSerbian_Latin_100_X\nSlovak_X\nSlovak_100_X\nSlovenian_X\nSlovenian_100_X\nTurkmen_100_X\nSQL_Croatian_CP1250_X\nSQL_Czech_CP1250_X\nSQL_Estonian_CP1257_X\nSQL_Hungarian_CP1250_X\nSQL_Latin1_General_CP1250_X\nSQL_Latin1_General_CP1257_X\nSQL_Latvian_CP1257_X\nSQL_Lithuanian_CP1257_X\nSQL_Polish_CP1250_X\nSQL_Romanian_CP1250_X\nSQL_Slovak_CP1250_X\nSQL_Slovenian_CP1250_X\n
Run Code Online (Sandbox Code Playgroud)\n