【问题标题】:Persian numbers in SQL Server 2005SQL Server 2005 中的波斯数字
【发布时间】:2012-06-26 10:37:37
【问题描述】:

我正在尝试将一些波斯文本添加到我的 SQL Server 2005 数据库中。

字母没有问题,但是波斯数字(۱،۲،۳،...)转换成?...

例如,如果我将这个文本(سلام ۱۲۳۴‍‍‍)添加到数据库中,那么数据库中就会有(سلام ؟؟؟؟

我该怎么办? (例如,我应该使用哪种排序规则?)

我正在使用Arabic_CI_AS 排序规则。在this 列表中,波斯语(波斯语)排序规则为Arabic_CI_AS (SQL Server 2005 没有 Persian 排序规则,但 2008 有!)

注意:我不能使用较新版本的 SQL Server...

【问题讨论】:

  • 是否可以选择使用其中一种 unicode 数据类型(NChar、NVarChar)?
  • 我正在使用nvarchar 数据类型。

标签: sql-server sql-server-2005 persian


【解决方案1】:

如果插入字符串字面量,请务必用 N'' 标记 Unicode 字符串,例如

select N'سلام ۱۲۳۴‍‍‍'

接下来,确定问号是否只是SSMS中的显示问题:

declare @t nvarchar(50) = N'سلام ۱۲۳۴‍‍‍'
select unicode(substring( @t, 1, 1))
select unicode(substring( @t, 2, 2))
select unicode(substring( @t, 3, 3))
select unicode(substring( @t, 4, 4))

返回每个字符的 Unicode 值:

1587
1604
1575
1605

我记得 SSMS 2005 在结果窗口中显示某些 Unicode 范围时出现问题。

【讨论】:

    【解决方案2】:

    您可以使用 Arabic_CI_AI 排序规则 并解决这个问题 希望对你有帮助。。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-06
      • 1970-01-01
      • 2011-03-18
      • 2010-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多