# ICU usage in Swift

**URL:** <https://forums.swift.org/t/icu-usage-in-swift/20473>\
**Category:** Standard Library\
**Tags:** windows, android, linux\
**Created:** [February 14, 2019, 6:35am UTC](https://forums.swift.org/t/icu-usage-in-swift/20473 "2019-02-14T06:35:24Z")\
**Posts on this page:** 1\
**Showing post:** 11

<div class="post-metadata">

**Author:** ![SDGGiesbrecht](https://sea2.discourse-cdn.com/swift/user_avatar/forums.swift.org/sdggiesbrecht/32/4768_2.png) [@SDGGiesbrecht](https://forums.swift.org/u/SDGGiesbrecht)\
**Post date:** [April 23, 2019, 6:21pm UTC](https://forums.swift.org/t/icu-usage-in-swift/20473/11 "2019-04-23T18:21:58Z")

</div>

> [@compnerd](#):
>
> why do you need string normalization there?

Because right now identifiers (including operators) do not follow unicode equivalence. The core team has said [here](https://forums.swift.org/t/pitch-unicode-equivalence-for-swift-source/21576/2), [here](https://forums.swift.org/t/pitch-unicode-equivalence-for-swift-source/21576/11), [here](https://forums.swift.org/t/pitch-unicode-equivalence-for-swift-source/21576/15) and definitively [here](https://forums.swift.org/t/pitch-unicode-equivalence-for-swift-source/21576/22) that it is a bug that should be fixed.

Right now surprises like the following are possible:

```swift
let café = "café" // NFD
let café = "Fwahahaha!" // NFC
print(café) // Compiles and runs, but what does it do?

```

```swift
infix operator ≠ // NFD

// Compiler error: operator not defined.
func ≠(lhs: Int, rhs: Int) -> Bool { // NFC
    return lhs != rhs
}

```

For more details see the thread linked earlier.

---

_[View the full topic](https://forums.swift.org/t/icu-usage-in-swift/20473)._
