그런데, 똑같은 '한'이라는 글자가 아스키코드 값이 달랐다. 그래서 찾아보니 '유니코드 정규화(Unicode Normalization)'이 필요하다고 한다.
대표적인 예로 옴(Ω)과 오메가(Ω)는 서로 다른 문자로 취급된다. 이런 경우는 동일한 기호가 서로 사용되는 분야가 다를 때 다른 유니코드를 반환한다.
또 한글과 같이 동일한 문자라도 조합형과 완성형 두 가지 방식으로 표현될 수 있는데 모든 현대 한글 글자를 표현하는데 문제가 없지만 구한말 이전에 쓰였던 옛한글까지 표현하는 경우는 불가능해서 옛 한글의 경우 유니코드 표준에서는 첫가끝 코드라고 부르는 방식을 이용해 표현한다.
또 다른 문자셋과 호환문제가 있다. 이던에 euc-kr이라는 문자셋을 사용했었는데, 유니코드 표준을 제정할 때 다른 문자셋과 호환을 염두하고 유니코드와 타 문자 셋간 변환이 가능해지도록 했다ㅏ. 그래서 한글 문자셋의 경우 동일한 한자를 한자음에 따라 다른 코드를 부여하는 해괴한 일을 낳게 됬다고 한다. 예로 같은 한자 쇠금(金) 이라고 해도 '금'을 입력하고 변환한 金과 '김'을 입력하고 변환한 金의 유니코드가 다르다.
따라서 문자열 비교, 검색 등 또는 정규식을 먹일 때 꼭 유니코드 정규화(Unicode Normalization)을 해야 한다.