【问题标题】:UTF-8 nvarchar Romanian letters not displaying in SQL Server 2012 [closed]SQL Server 2012 中未显示 UTF-8 nvarchar 罗马尼亚语字母 [关闭]
【发布时间】:2015-08-10 20:38:32
【问题描述】:

我的数据库中的变音符号有问题,它应该以罗马尼亚语存储单词。我正在使用nvarchar 数据类型,我该怎么办?

我试过这个:

INSERT INTO Raion
VALUES 
(1,'Chișinău'),
(2,'Bălți'),
(3,'Comrat'),
(4,'Tiraspol')

但我最终得到这样的条目:

?oldane?ti
?tefan Voda
Anenii Noi
Bal?i
Basarabeasca
Briceni
Cahul

这是表格:

CREATE TABLE Raion (
 id int Primary Key,
 denumire nvarchar(255) Not Null Unique
)

【问题讨论】:

  • 你能详细解释一下你所说的问题是什么意思吗?你的问题很模糊。请添加适当的详细信息
  • INSERT INTO Raion VALUES (1,'Chişinău'), (2,'Bălți'), (3,'Comrat'), (4,'Tiraspol'),可能会这样说,但它写了这个:
  • 试试INSERT INTO Raion VALUES (1,N'Chișinău'), (2,N'Bălți'), (3,N'Comrat'), (4,N'Tiraspol')。请参阅N 了解 Unicode?​​span>
  • 请注意,这表明您正在将插入组成一个字符串,例如"INSERT INTO Raion VALUES (" + id + ",'" + name + "')。这是错误的方式。使用SqlParameter。搜索有关如何使用它的详细信息。它会解决你的问题。
  • 非常感谢,它有效

标签: c# sql sql-server utf-8 sql-server-2012


【解决方案1】:

N 为您的denumire 值添加前缀以指示Unicode 常量字符串

架构

CREATE TABLE Raion
    ([id] int, [denumire] nvarchar(8))
;

INSERT INTO Raion
    ([id], [denumire])
VALUES
    (1,N'Chișinău'),
    (2,N'Bălți'),
    (3,N'Comrat'),
    (4,N'Tiraspol')
;

查询

SELECT * 
FROM raion

输出

id  denumire
1   Chișinău
2   Bălți
3   Comrat
4   Tiraspol

SQL 小提琴:http://sqlfiddle.com/#!3/e91d8/1/0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-06
    • 1970-01-01
    • 2016-09-23
    相关资源
    最近更新 更多