2

我有一个由以下结构组成的表。

 CREATE TABLE [dbo].[tblData](
    [ID] [numeric](18, 0) NOT NULL,
    [QID] [varchar](25) NOT NULL,
    [Data] [nvarchar](255) NULL,
  CONSTRAINT [PK_tblData] PRIMARY KEY CLUSTERED 
   (
      [ID] ASC,
      [QID] ASC
   )
 ) ON [PRIMARY]

在上面的示例中,[data] 列中混合了不同的语言。我们通过设置适当代码页的网站收集这些数据。我了解插入到我们表格中的数据是收集数据时网页上设置的代码页。我们将此信息存储在其他地方。

我们使用的每种语言都很好。例如,中文会根据我们的需要出现并显示。我们正在尝试将此数据转储到 Unicode 文本文件中。具体来说:“UCS-2 LE” 只有一种语言没有出现,那就是法语。由于某种原因,通常重音的字符完全错误。我发现数据(我希望)似乎被“存储”为错误的字符。

一位同事认为表中的数据可能是正确的,我们只需将其转换为正确的字符集或正确的代码页以正确显示数据,然后再将数据放入 UCS-2 LE 文本文件。

任何人都可以对我的问题提供任何见解吗? 谢谢!

更新:我发现了这个: http: //windowsitpro.com/windowsstorage/Article/ArticleID/14045/windowsstorage_14045.html - 这基本上是说我需要做的事情不能做吗?我认为我想做的事情略有不同,但这会导致 [false-] 希望。

4

1 回答 1

1

你的同事是对的。由于数据以 UNICODE 数据类型存储,因此应保留本机语言格式。

需要发生的是,当您选择数据时,您要确保为执行请求的用户(即他们的语言环境)使用适当的排序规则。

有关在 SQL Server 中使用排序规则的信息,请参阅以下联机丛书参考

http://msdn.microsoft.com/en-us/library/ms144260(SQL.90).aspx

希望这可以帮助。干杯。

于 2009-03-24T19:12:00.813 回答