일부 라틴어-1 문자의 유니코드 범주가 변경됨
Char 메서드는 이제 라틴어-1 범위의 문자에 대해 올바른 유니코드 범주를 반환합니다. 범주는 유니코드 표준의 범주와 일치합니다.
변경 내용 설명
이전 .NET 버전에서 Char 메서드는 라틴어-1 범위의 문자에 대해 유니코드 범주의 고정 목록을 사용했습니다. 그러나 유니코드 표준은 해당 API가 구현된 이후 이러한 문자 중 일부의 범주를 변경했으며 이에 따른 불일치가 발생합니다. 또한 Char API와 CharUnicodeInfo API 간에 불일치가 있었으며, 이는 유니코드 표준을 따릅니다. .NET 5 이상 버전에서 Char 메서드는 모든 문자에 대한 유니코드 표준과 일치하는 유니코드 범주를 사용하고 반환합니다.
다음 표에서는 .NET 5에서 유니코드 범주가 변경된 문자를 표시합니다.
캐릭터 | 유니코드 범주 이전 .NET 버전 |
유니코드 범주 .NET 5 이상 버전 |
---|---|---|
§(\u00a7) | OtherSymbol |
OtherPunctuation |
ª(\u00aa) | LowercaseLetter |
OtherLetter |
SHY(\u00ad) | DashPunctuation |
Format |
¶(\u00b6) | OtherSymbol |
OtherPunctuation |
º(\u00ba) | LowercaseLetter |
OtherLetter |
도입된 버전
.NET 5.0
권장 작업
Char 클래스를 사용하여 유니코드 문자 범주를 가져오는 코드가 있으며 범주가 변경되지 않는다고 가정하는 경우 범주를 업데이트해야 할 수도 있습니다.
변경 이유
Char 형식에서 반환된 범주가 유니코드 표준과 CharUnicodeInfo 형식 둘 다와 일치하도록 이렇게 변경했습니다.
영향을 받는 API
- System.Char.GetUnicodeCategory
- System.Char.IsLetter
- System.Char.IsPunctuation
- System.Char.IsSymbol
- System.Char.IsLower
또한 유니코드 문자 범주를 얻기 위해 Char에 의존하는 클래스(예: Regex)는 이 변경의 영향을 받습니다.
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET