Sql Server插入命令将"Â"添加到NVarChar列

eye*_*aul 1 sql-server

我有一个sql命令如下:

INSERT [dbo].[Currency] ([CurrencyID], [Description], [Symbol]) 
VALUES (N'7418fe34-1abc-4189-b5f1-e638a34af1a1', N'GBP', N'£')
Run Code Online (Sandbox Code Playgroud)

当我对数据库运行时,它将最后一列输入为'£'而不是'£'.我以前遇到过这个,但不能为我的生活记住如何解决它!

有任何想法吗?

谢谢.

UPDATE

很有趣,如果我将我的sql文件中的那一行复制并粘贴到sql man stud中,那么它插入就好了.所以我认为我的sql文件有问题,而且我看不到它可能存在的角色?

UPDATE

sql脚本具有以下内容以插入欧元符号:

INSERT [dbo].[Currency] ([CurrencyID], [Description], [Symbol])
VALUES (N'c60b1e0c-289a-4a0a-8c7d-30a490cbb7a8', N'EUR', N'€')
Run Code Online (Sandbox Code Playgroud)

并在数据库中为最后一列输出"â, - "

UPDATE

好的,我现在已经将我的完整sql文件复制并粘贴到Sql Server中并运行它,它现在插入一切正常.那么为什么只有在我运行".sql"文件时才出现这个问题?

UPDATE

另一个更新!如果我在Visual Studio中查看".sql"文件看起来很好,但是如果我在记事本中打开它,就会出现伪造的字符!

小智 5

(来自评论)

该文件保存为UTF-8,但sqlcmd使用错误的代码页读取它.添加-f 65001选项告诉sqlcmd将其读作UTF-8文件.