我如何解释下面提到的UTF-8范围



我通过下面的if-loop

 if (((current >= 0x20) && (current <= 0xD7FF))
                || ((current >= 0xE000) && (current <= 0xFFFD))
                || ((current >= 0x10000) && (current <= 0x10FFFF))) {
            out.append(current);
        }

我试图搜索这些范围代表什么,但我没有得到答案。你能帮我解释一下这些范围吗?

这些是空格以上unicode字符的有效范围。0x20下面是控制字符(包括新行和制表符)在0xD800和0xDFFF之间用于使用UTF-16编码> 0xFFFF的字符。

注意:如果电流为char,则current >= 0x10000总是假的。如果currentint,则out.append(current);将打印数字而不是字符。

最新更新