분음 부호 문자는 복합 문자입니다. 즉, 기본 문자와 분음 부호가 포함될 수 있습니다.
'a' + '´' = 'á'
0061 + 00B4 = 00E1
모두 006100B4
와 00E1
동일한 문자의 결과는, 유니 코드가 이용 앞뒤로 스위칭하도록 정규화 테라 의해 지원되는 기능 :
translate(string using UNICODE_TO_UNICODE_NFD)
복합 문자를 별도의 문자로 분해합니다. 이러한 결합 발음 구별 부호 는 U + 0300에서 U + 036F까지의 유니 코드 블록에 있습니다.
이제 입력을 분해하고 정규식을 적용하여이 범위에서 문자를 제거합니다.
select
'Ťĥïŝ ẅåš á şťŕĭńġ ŵïţĥ ḿäṇȳ ḓìāčṝĩţïĉș' as str,
REGEXP_REPLACE(translate(str using UNICODE_TO_UNICODE_NFD) -- decomposed input
,'[\x{0300}-\x{036F}]' -- diacritics
,'')
보고
Ťĥïŝ ẅåš á şťŕĭńġ ŵïţĥ ḿäṇȳ ḓìāčṝĩţïĉș
This was a string with many diacritics
분해 가능한 다른 문자가있는 경우 다른 문자를 사용하여 공간을 절약하기 위해 다시 구성해야 할 수 있습니다. translate(... using UNICODE_TO_UNICODE_NFC)
입력 문자열에 LATIN 문자 세트가있는 경우 제한된 분음 부호 문자 목록을 찾고 번역을 적용하는 것이 더 쉬울 수 있습니다.
oTranslate(str, 'àáâãäåÀÁÂÃÄÅÇ...', 'aaaaaaAAAAAAC...')
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다