在C#中将数据从nvarchar转换为varchar

Bri*_*hey 1 c# database encoding character-encoding

作为我正在进行的集成任务的一部分,我的数据库中有一个类型为nvarchar(30)的列,我需要调用WCF服务并传递此列中的值(以及其他值),然后将其存储在在另一个数据库中具有varchar(30)类型的列.

我应该怎么做(可能是在调用WCF服务的代码中)将我的字符串转换为"varchar friendly"字符串?

更新:什么都没有出错.但是,我将通过此服务初步迁移120,000条记录,然后每天将推送约300条新记录.因此,任何形式的人工干预都是非常不受欢迎的,我只是在考虑提前可能出现的问题.我无法控制目标数据库(使用VARCHAR列),但我知道应用程序是SQL Server和C#(不确定它们是否使用ADO.NET).

Mac*_*Mac 8

没有什么你必须做的:在.NET中的所有字符串是UTF-16编码:

  • 当你检索你的NVARCHAR列时(使用我假设的ADO .NET),你会自动获得一个.NET字符串(UTF-16,任何必要的转换都是自动的).
  • 将此.NET字符串存储在VARCHAR列中时,也会自动执行UTF-16的任何必要转换.

有关 ADO .NET中Sql Server的数据类型映射的详细信息,请参见此处.

您只需要确保所有字符串都可以从源字符集完美地转换为目标字符集.