Sql server SQL编码-Visual Studio中的长破折号转换为࿽;在版本管理工具中

Sql server SQL编码-Visual Studio中的长破折号转换为࿽;在版本管理工具中,sql-server,visual-studio,encoding,special-characters,github-desktop,Sql Server,Visual Studio,Encoding,Special Characters,Github Desktop,我正在尝试将新行插入到包含带有特殊字符(如长破折号(-)的文本的数据库中。当我在SSMS中手动执行此操作时,它可以正常工作,但当我将脚本提交到版本管理工具(Github desktop)中时,这些符号显示为�. 在VisualStudio中,特殊角色也会正常显示。我应该怎么做才能正确添加脚本,并且可以针对任何SQL Server 2016数据库执行脚本? 我的更改在Github桌面中的显示方式: 该行为似乎是由*.sql文件的编码类型引起的,我将脚本与特殊字符放在了该文件中。该文件使用UTF-

我正在尝试将新行插入到包含带有特殊字符(如长破折号(-)的文本的数据库中。当我在SSMS中手动执行此操作时,它可以正常工作,但当我将脚本提交到版本管理工具(Github desktop)中时,这些符号显示为�. 在VisualStudio中,特殊角色也会正常显示。我应该怎么做才能正确添加脚本,并且可以针对任何SQL Server 2016数据库执行脚本?

我的更改在Github桌面中的显示方式:


该行为似乎是由*.sql文件的编码类型引起的,我将脚本与特殊字符放在了该文件中。该文件使用UTF-8编码,而应使用UTF-8-BOM编码保存该文件,以便能够正确显示这些字符


这允许更改编码吗?首先,如果要使用ASCII以外的字符,请在字符串常量前面加上
N
——即使列是
VARCHAR
,并带有恰好支持它们的排序规则,也要使其成为Unicode常量。其次,检查文件是如何保存的——在VS中,您可以执行文件->另存为,然后单击保存按钮以获得“使用编码保存”选项。带BOM的UTF-8对于Windows上的此类文件是一个不错的选择,但某些工具可能会错误处理BOM。只要文件的编码和其中的字符是正确的,您的diff工具如何处理它是一个单独的问题。这会有帮助。N在开始时做什么?请参阅。
N
确保字符串无论出现在何处都具有一致的编码。如果没有它,您可能会对在排序规则(而不是列的目标排序规则)中编码的字符串感到惊讶。当您使用的字符实际上不适合
VARCHAR
(如使用拉丁排序规则的数据库中的汉字)时,这一点尤其重要。当然,要正确存储这些内容,还需要一个
NVARCHAR
列。