SQL 插入多语言数据 - 丢失变音符号等

Posted

技术标签:

【中文标题】SQL 插入多语言数据 - 丢失变音符号等【英文标题】:SQL Inserting multilingual data - loses diacritic marks etc 【发布时间】:2011-03-15 23:16:28 【问题描述】:

将多语言数据插入 SQL 2008 数据库(nvarchar 字段) 我注意到它似乎丢失了一些特殊字符标记。

例如

    INSERT INTO [dbName].[dbo].[tbl_Question_i18n]  
           ([QuestionId]  
           ,[LanguageId]  
           ,[QuestionText])  
     VALUES  
           (@lastinsertedquestionid  
           ,@romanian  
           ,'Număr unic de referinţă (URN)')  

被插入为“Numar unic de referinta (URN)”

虽然如果我执行“编辑前 200 行”,我可以毫无问题地将相同的文本直接粘贴到该字段中。

请问我错过了什么?

【问题讨论】:

【参考方案1】:
INSERT INTO [dbName].[dbo].[tbl_Question_i18n]  
       ([QuestionId]  
       ,[LanguageId]  
       ,[QuestionText])  
 VALUES  
       (@lastinsertedquestionid  
       ,@romanian  
       ,N'Număr unic de referinţă (URN)')

您需要在字符串常量之前添加 N 以使其成为 Unicode

【讨论】:

以上是关于SQL 插入多语言数据 - 丢失变音符号等的主要内容,如果未能解决你的问题,请参考以下文章

sql 翻译和部署多语言应用程序

从 SQL Server 2008 R2 检索多语言数据(中文、日文...)并在 Java webapp 中显示

GitHub标星2400,Netflix开源笔记本工具Polynote:ScalaPython和SQL等多语言操作

Visual Studio 2010 Express 多语言解决方案

ASP.NET MVC 多语言实现技巧 最简最易维护和最快速开发

iOS 启动页多语言