【问题标题】:How does MaxLengthAttribute measure length?MaxLengthAttribute 如何测量长度?
【发布时间】:2021-05-27 03:18:21
【问题描述】:

MaxLengthAttribute 究竟如何测量字符串的长度?它是否基于 UTF-16 中的字节,因为 C# 字符串是 UTF-16?因此,如果我的 SQL Server 使用 UTF-8 排序规则,则可能存在 SQL Server 和 C# 对字符串长度是否为(例如)有不同看法的情况。 <= 100?

【问题讨论】:

    标签: c# sql-server validation utf-8 utf-16


    【解决方案1】:

    它是否基于 UTF-16 中的字节,因为 C# 字符串是 UTF-16

    不,是string对象中的字符数,即stringLength属性返回的数字。

    例如,值为“abc”的 stringLength 为 3,在 UTF-8 中用 3 个字节表示,在 UTF-16 中用 6 个字节表示。

    string 的值为“åäö”,Length 的值也为 3,尽管在 UTF-8 和 UTF-16 中均由 6 个字节表示。

    所以它指的是char中的元素个数,或者string的长度。

    【讨论】:

      【解决方案2】:

      该属性不测量字符串的长度,它只是为字符串的 Length 属性指定一个限制,即clearly documented 为字符数。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-02-08
        • 1970-01-01
        • 2017-06-24
        • 2016-03-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多