sql字符编码非英文字符

时间:2013-12-07 07:33:12

标签: sql sql-server-2008 encoding character-encoding sql-insert

我正在使用sql 2008 r2 我试图用阿拉伯语插入一些价值

insert into tbl_number (number_ownerName , number_num ) values ('مديرية الزراعة/التقانة','235767')
insert into tbl_number (number_ownerName , number_num) values ('محمد  راتب ابازيد','227927')
insert into tbl_number (number_ownerName , number_num) values ('فادي مصطفى ابازيد','221355')

但结果如下:

select * from tbl_number
number_num            number_ownerName 
235767          ?????? ???????/??????? 
227927                  ????  ???? ??????    
221355                  ???? ????? ??????     

1 个答案:

答案 0 :(得分:1)

我认为您正在寻找 NCHAR ,这是NATIONAL CHAR,存储为UTF-16LE,是唯一可靠地存储非ASCII字符的方式。

  

固定长度的Unicode字符串数据。 n定义字符串长度并且必须   是1到4,000之间的值。存储大小是n的两倍   字节。当排序规则代码页使用双字节字符时,   存储大小仍然是n个字节。取决于字符串,存储   n个字节的大小可以小于为n指定的值。 ISO   nchar的同义词是national char和national character ..

另请注意, SQL Server不支持UTF-8。

同时检查

修改: -

如评论所示,您可以在插入时添加N.试试这样:

insert into tbl_number (number_ownerName , number_num ) values (N'مديرية الزراعة/التقانة','235767') 
insert into tbl_number (number_ownerName , number_num) values (N'محمد راتب ابازيد','227927') 
insert into tbl_number (number_ownerName , number_num) values (N'فادي مصطفى ابازيد','221355')