https://en.wikipedia.org/wiki/UTF-8#Invalid_code_points'dan U + D800 ile U + DFFF'nin geçersiz olduğunu bilmeliyim. Böylece ondalık sistemde 57293 ile 55296'dır.Neden utf8.Validstring işlevi geçersiz unicode karakterleri tespit etmiyor?
Ve en büyük Unicode '\ U0010FFFF'dir. ondalık sistemde, 1114111
Benim kodudur:
package main
import "fmt"
import "unicode/utf8"
func main() {
fmt.Println("Case 1(Invalid Range)")
str := fmt.Sprintf("%c", rune(55296+1))
if !utf8.ValidString(str) {
fmt.Print(str, " is not a valid Unicode")
} else {
fmt.Println(str, " is valid unicode character")
}
fmt.Println("Case 2(More than maximum valid range)")
str = fmt.Sprintf("%c", rune(1114111+1))
if !utf8.ValidString(str) {
fmt.Print(str, " is not a valid Unicode")
} else {
fmt.Println(str, " is valid unicode character")
}
}
ValidString işlevi girdi olarak verilen geçersiz unicode karakterleri için sahte dönmüyor Neden? Eminim anlayışım yanlış, bazıları açıklayabilir mi?