【发布时间】: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
MaxLengthAttribute 究竟如何测量字符串的长度?它是否基于 UTF-16 中的字节,因为 C# 字符串是 UTF-16?因此,如果我的 SQL Server 使用 UTF-8 排序规则,则可能存在 SQL Server 和 C# 对字符串长度是否为(例如)有不同看法的情况。 <= 100?
【问题讨论】:
标签: c# sql-server validation utf-8 utf-16
它是否基于 UTF-16 中的字节,因为 C# 字符串是 UTF-16
不,是string对象中的字符数,即string的Length属性返回的数字。
例如,值为“abc”的 string 的 Length 为 3,在 UTF-8 中用 3 个字节表示,在 UTF-16 中用 6 个字节表示。
string 的值为“åäö”,Length 的值也为 3,尽管在 UTF-8 和 UTF-16 中均由 6 个字节表示。
所以它指的是char中的元素个数,或者string的长度。
【讨论】:
该属性不测量字符串的长度,它只是为字符串的 Length 属性指定一个限制,即clearly documented 为字符数。
【讨论】: