【问题标题】:ISO 8859-15 or ISO 8859-1 in SQL Server?SQL Server 中的 ISO 8859-15 或 ISO 8859-1?
【发布时间】:2015-10-11 12:30:03
【问题描述】:

SQL Server 中的 ISO 8859-15 或 ISO 8859-1 应该使用什么排序规则?我环顾四周,在任何地方都找不到这方面的参考资料。非常感谢任何帮助。

【问题讨论】:

    标签: sql-server collation iso-8859-1 iso-8859-15


    【解决方案1】:

    这完全取决于您要存储的语言。例如。如果您使用SQL_Danish_Pref_Cp1_CI_AS_KI_WI,那么Aarhus 将排在Xylophone 之后,因为aa 是å 的拼写,在丹麦/挪威字母表中位于x 之后。

    【讨论】:

    • 我们将以英文存储。那么,是否有一种排序规则可用于验证 ISO 8859-15 或 ISO 8859-1 中的字符集并拒绝任何其他字符?
    • 您的问题没有任何意义。latin-1 字符集使用全部 256 种可能的编码(即没有代表“非法”字符的位模式)。所有很酷的孩子都在使用 utf-8,但是如果您设置为 latin-1,那么 SQL_Latin1_General_Cp1_CS_AS_KI_WI 可能对您有用,或者如果您的英语是 USian,则可能是 Cp437 排序规则之一,如果您的英语是“可能是 Cp850 排序规则之一”原创” ;-) 说真的... utf-8 :-)
    • 我们正在尝试将数据提供给仅接受 ISO 8859-15 字符的系统。因此,我尝试在 SQL Server 中使用排序规则在输入字符之前对其进行验证。我想我会尝试 SQL_Latin1_General_Cp1_CS_AS_KI_WI 看看我会得到什么。
    • 正如我所说,我认为您误解了排序规则是什么(它与无效的“字符”无关)。您正在做的是尝试获取输入字节并将它们存储为 8859-15 字节。为此,您需要知道输入字节的编码方式,以便将字节解码为 Unicode。拥有 Unicode 文本后,您需要将其编码为 iso-8859-15 并处理无法使用该编码进行编码的任何 Unicode 代码点(“字符”)。如果您还没有阅读joelonsoftware.com/articles/Unicode.html,这是一个很好的起点。
    猜你喜欢
    • 2011-06-10
    • 2013-01-19
    • 2012-05-25
    • 1970-01-01
    • 2010-11-18
    • 2019-02-21
    • 2013-05-05
    • 2011-12-27
    • 1970-01-01
    相关资源
    最近更新 更多