터키어 i
(en.wikipedia.org)소프트웨어 국제화를 다룰 때 특히 까다로운 것은 거의 모든 언어에서 동작하는데 몇몇 (어쩌면 딱 한) 언어에서만 안 동작하는 상황이죠. 터키어와 아제르바이잔어에서만 등장하는 두 종류의 i가 대표적인 예입니다. 라틴 문자에서는 점 있는 소문자 i와 점 없는 대문자 I만 존재하지만, 이들 언어에서는 점 없는 문자 ı/I와 점 있는 문자 i/İ가 따로 쌍을 이룹니다. 대표적으로 "이스탄불İstanbul"의 첫 글자가 점 있는 대문자 İ입니다.
유니코드에서는 터키어·아제르바이잔어의 i/I를 별도로 인코딩하지 않기 때문에(똑같은 라틴 문자니깐요) 해당 언어를 고려하지 않는 소프트웨어에서 종종 문제가 생기는데, 심지어 사람 잡는 일까지 벌어진 적도 있습니다. [1] 올바르게 처리하려면 문화 정보(로캘)를 고려하는 유니코드 라이브러리를 사용해야 합니다. 자바나 C# 같이 로캘 처리가 있는 언어·환경에서는 큰 문제가 없고, 다른 곳에서는 ICU와 같은 별도의 라이브러리가 필요합니다.
[1] https://gizmodo.com/a-cellphones-missing-dot-kills-two-people-puts-thr…