Jun*_*Liu 2 sql sql-server sql-server-2008
我们接受带重音符号的字符(例如??xi???html格式的字符),当使用hibernate将其保存到数据库时,字符串变成??xi???
然后,我进行了一次SQL更新,试图将重读单词直接写到数据库中,结果还是一样。
所需的行为是按原样设置到数据库中。
我正在使用Microsoft SQL Server 2008。
我试图用Google搜索它,有人说我需要将数据库排序规则更改为SQL_Latin1_General_CP1_CI_AI。但是我从下拉列表中找不到此选项。
其中只有一种有效:nvarchar数据类型和Unicode常量的N前缀。
DECLARE
@foo1 varchar(10) = '??xi???',
@foo2 varchar(10) = N'??xi???',
@fooN1 nvarchar(10) = '??xi???',
@fooN2 nvarchar(10) = N'??xi???';
SELECT @foo1, @foo2, @fooN1, @fooN2;
Run Code Online (Sandbox Code Playgroud)
您必须确保所有数据类型都是从头到尾的nvarchar(列,参数等)
排序规则不是问题:这是用于nvarchar的排序和比较
| 归档时间: |
|
| 查看次数: |
8421 次 |
| 最近记录: |