텍스트 정규화 라이브러리를 사용하여 Go에서 발음 구별 부호 제거
Go에서 UTF8로 인코딩된 문자열에서 발음 구별 부호를 어떻게 쉽게 제거할 수 있습니까? 예를 들어 문자열 "žůžo"를 "zuzo"로 변환합니다.
해결책:
다행히도 Go는 유니코드를 포함하여 텍스트 정규화를 처리하는 다양한 표준 라이브러리를 제공합니다. 정규화 및 발음 구별 부호 제거. 효과적으로 활용하는 방법은 다음과 같습니다.
package main import ( "fmt" "unicode" "golang.org/x/text/transform" "golang.org/x/text/unicode/norm" ) func isMn(r rune) bool { return unicode.Is(unicode.Mn, r) // Mn: nonspacing marks } func main() { t := transform.Chain(norm.NFD, transform.RemoveFunc(isMn), norm.NFC) result, _, _ := transform.String(t, "žůžo") fmt.Println(result) }
이 코드는 NFD(정규화 형식 D), Mn 제거 및 NFC(정규화 형식 C) 알고리즘을 사용하는 일련의 변환을 사용합니다. 결과적으로 입력 문자열에서 모든 발음 구별 부호가 효과적으로 제거됩니다.
위 내용은 Go의 UTF-8 문자열에서 분음 부호를 제거하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!