gpt4 book ai didi

sql server 2012 Express不理解俄语字母

转载 作者:行者123 更新时间:2023-12-02 14:22:53 25 4
gpt4 key购买 nike

我有正在处理俄语文本的数据库,但是当我运行查询时它会向我显示这一点。数据库将由俄罗斯人使用,并且必须正确显示俄语文本!

enter image description here

有什么解决办法吗?将来它将位于俄罗斯并与俄语版本的 SQL Server 一起使用,但现在我正在开发英语版本的 SQL 2012 Express。

这是表和插入语句:

Create table Employee
(
EmpID int not null IDENTITY (10, 1),
StrName nvarchar (25) not null,
Phone1 nvarchar (25) not null,
Phone2 nvarchar (25)
Primary Key (EmpID),
);
insert into Employee (LastName , FirstName,Phone1,Phone2)
values ('Иванов','111 111 11111','111 111 1111');

最佳答案

您确定数据已正确存储到数据库中吗?你怎么知道?

确保该列具有正确的排序规则,它被定义为 nvarchar 并且字符串文字的插入以 N 为前缀。例如,这些是不一样的:

INSERT dbo.table(column) SELECT 'foo';
INSERT dbo.table(column) SELECT N'foo';

举个例子:

USE tempdb;
GO

CREATE TABLE dbo.foo
(
ID INT PRIMARY KEY,
bar NVARCHAR(32) COLLATE SQL_Ukrainian_CP1251_CI_AS
);

INSERT dbo.foo SELECT 1,'АБВГДЕЖЅZЗИІКЛ';
INSERT dbo.foo SELECT 2,N'АБВГДЕЖЅZЗИІКЛ';

SELECT ID, bar FROM dbo.foo;
GO
DROP TABLE dbo.foo;

结果:

ID    bar
---- --------------
1 ????????Z?????
2 АБВГДЕЖЅZЗИІКЛ

为了显示这如何影响您的插入语句,您的字符串缺少 N 前缀:

SELECT
CONVERT(NVARCHAR(32), 'Иванов'),
CONVERT(NVARCHAR(32), N'Иванов');

结果:

------    ------
?????? Иванов

因此,请为您的 Unicode 字符串添加 N'a prefix' 前缀,否则会丢失数据。

关于sql server 2012 Express不理解俄语字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18325680/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com