Какой тип нормализации используется при сравнении строк Swift?

В другом месте я видел, что в сравнениях Swift используется нормализация NFD.

Однако, бегая на детской площадке iSwift, я обнаружил, что

print("\u{0071}\u{0307}\u{0323}" == "\u{0071}\u{0323}\u{0307}");

дает false несмотря на то, что это пример прямо из стандарта "канонической эквивалентности", которому, как утверждает документация Swift, следует следовать.

Итак, какую канонизацию выполняет Swift, и это ошибка?

1 ответ

Решение

Похоже, что это была ошибка в Swift, которая с тех пор была исправлена. С Swift 3 и Xcode 8.0,

print("\u{0071}\u{0307}\u{0323}" == "\u{0071}\u{0323}\u{0307}")

сейчас печатает true,

Другие вопросы по тегам