【问题标题】:What collation should I use for amharic language?我应该对阿姆哈拉语使用什么排序规则?
【发布时间】:2016-12-06 14:54:41
【问题描述】:

我正在使用 SQL Server 2014。我想在我的数据库中使用阿姆哈拉语。数据库的默认排序规则是 Latin1_General_CP1_CI_AS。我将其更改为Latin1_General_CI_AS。两者都不显示阿姆哈拉语字符。它们在键入时显示字符,但在提交时它们变为问号。

我应该使用什么排序规则或者我缺少什么?

【问题讨论】:

    标签: sql-server sql-server-2014 collation


    【解决方案1】:

    我认为您的问题可能不在排序规则中。

    尝试使用UNICODE 数据类型,例如 NCHAR 和 NVARCHAR,您会看到已保存的字符。 排序仅用于排序和比较。查看排序规则列表并选择最合适的排序规则。

    最初,您并没有告诉您正在使用全文搜索。这要求您使用关键字LANGUAGE 和您的语言名称。但是,支持的语言只有 53 种(请参阅sys.fulltext_languages),而amharic 不存在。

    您只能选择使用the neutral word breaker 重新创建全文目录,然后重新填充它。然后至少它会通过空格和标点符号识别单词。
    查看更多详情:https://msdn.microsoft.com/en-us/library/ms142509.aspx?f=255&MSPPError=-2147217396

    【讨论】:

    • 谢谢。我将其更改为 nvarchar 并且它有效。但是我有这些不起作用的搜索和订购代码。 student.Where(s=>s.name.Contains(str) 和 student.OrderBy(s=>s.name) 可以解决这个问题吗?
    • 你的搜索参数两边都是unicode吗?
    • 实际上,在我的回答中添加了更多细节。见那里。
    【解决方案2】:

    您可以按照MSDN上的步骤操作:

    SQL Server 设置中的默认排序规则

    在“控制面板”中,在“高级”中找到 Windows 系统区域设置名称 区域和语言选项中的选项卡。在 Windows Vista 中,使用 格式”选项卡。下表显示了相应的排序规则 将排序规则设置与现有 Windows 匹配的指示符 语言环境:

    因此您必须使用控制面板更改设置才能看到结果。

    【讨论】:

    • 我尝试更改语言环境,但阿姆哈拉语不在列表中。有阿姆哈拉语、格式和位置,但没有语言环境。
    【解决方案3】:

    一个简单的谷歌搜索将我带到this list of collations, most of them started with SQL Server 2008R2

    您的排序规则应该是 Latin1_General_100_

    更多提示:

    SQL Server 有一个默认排序规则,它是所有新数据库的标准排序规则,并且 - 非常重要!!! - 临时数据库的标准排序规则。

    最好 - 如果这对您有用 - 使用适当的排序规则安装 SQL Server。

    SQL Server 也允许在数据库级别定义默认排序规则。但是,如果您使用CREATE TABLE #table 并使用WHEREORDER BYGROUP BYJOIN(任何比较...)使用字符字段,这可能会导致严重的麻烦...

    最后但同样重要的是,您也可以在语句级别定义排序规则。这意味着大量的打字和相当难以阅读的代码,但提供了最好的控制......

    如何显示查询的输出是一个不同的问题。这是输出窗口(或您用来显示查询值的任何其他程序......)的问题。在这种情况下,可能需要使用适当的编码和字符集。这取决于您使用的工具...

    【讨论】:

      猜你喜欢
      • 2014-01-24
      • 2018-06-30
      • 1970-01-01
      • 2011-12-15
      • 1970-01-01
      • 2021-12-06
      • 1970-01-01
      • 2010-09-05
      相关资源
      最近更新 更多