Go에서 발음 구별 부호 제거
UTF8로 인코딩된 문자열로 작업할 때 "žůžo"의 악센트와 같은 발음 구별 부호를 제거해야 할 수도 있습니다. ""zuzo"를 얻으려면. 이러한 시나리오를 효율적으로 처리하기 위해 Go에서 사용할 수 있는 표준 라이브러리와 기술이 있습니다.
한 가지 접근 방식은 unicode.Is() 함수를 활용하여 발음 구별 부호(공백 표시가 없는 경우 "Mn"으로 분류된 문자)를 식별하는 것입니다.
다음 코드 조각은 유니코드/표준을 사용하여 주어진 문자열에서 발음 구별 부호를 제거하는 방법을 보여줍니다. golang.org/x/text/transform 패키지:
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) }
이 코드는 일련의 변환을 적용하여 발음 구별 부호를 제거합니다.
결과적으로 출력은 다음 예와 같이 발음 구별 부호가 제거된 문자열이 됩니다: "žůžo" => "zuzo".
위 내용은 Go의 UTF-8 문자열에서 분음 부호를 효율적으로 제거하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!