【问题标题】:.NET - Unicode character at the end of the sorting order.NET - 排序顺序末尾的 Unicode 字符
【发布时间】:2012-12-17 20:52:00
【问题描述】:

我希望有一个字符可以用来在列表中排序时将字符串作为最后一项。请注意,这不一定是防弹的,但考虑到例如+,_,( 等通常用于在文本之前放置一个字符串(在 ASCII/NTFS 等中)是否有一个字符可以用来在末尾放置一个字符串?

【问题讨论】:

  • Unicode 没有定义“永远最后”的代码点。 U+3fffff 很吸引人,但它不是一个字符。不要这样做。
  • @HansPassant 你是如何获得 3FFFFF 的?由于有 16 个星体平面,(数字上)最后一个有效代码点不是 10FFFF 吗?
  • 如果我将其限制为普通的 ASCII 字符,那么z 是最后一个吗?还是以后有?
  • 你可以使用自定义比较器吗?
  • @Simon 最后一个 ASCII 字符是 7F。正常可打印字符~ 位于 7E。但如果您使用文化感知排序,则顺序可能会有所不同。

标签: .net sorting unicode collation


【解决方案1】:

试试这个:

Char.ConvertFromUtf32(int.MaxValue);

给予:

有效的 UTF32 值介于 0x000000 和 0x10ffff(含)之间,并且 不应包含代理代码点值 (0x00d800 ~ 0x00dfff)。

那我猜你需要的是这样的:

Char.ConvertFromUtf32(0x10ffff);

【讨论】:

猜你喜欢
  • 2019-05-05
  • 2014-08-09
  • 1970-01-01
  • 1970-01-01
  • 2011-07-22
  • 2021-03-27
  • 2014-11-08
  • 2017-09-01
  • 2010-11-09
相关资源
最近更新 更多