2016-10-20 2 views
0
내가 포스트 그레스에서 unaccent 사용하고

에 대한 기능을하지만이 같은 특수 문자를 변환 할 수 없습니다 : ù : ù
있지만 ù: ù
2 문자와 같은 의미하지만 서로 다른 코드 괜찮아가, 첫 번째는 문자 U + # x0300;
어떻게이 문제를 해결할 수 있습니까? 정말 고마워요.포스트 그레스 unaccent 문자

답변

1

귀하의 문제는 unicode normalization, 무엇 PostgreSQL does not do, 불행히도. 그리고 독자적으로 구현하는 것은 그리 간단하지 않습니다. 당신은 단지 구별 부호를 제거 할 때문에

하지만, 당신은 실제로 unicode combining characters을있는 (전이나 unaccent() 함수를 호출 후) 코드 포인트를 제거해야합니다

select regexp_replace(
    'ùù', 
    '[\u0300-\u036F\u1AB0-\u1AFF\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]', 
    '', 
    'g' 
) 

트릭을 할해야합니다.