2016-11-07 35 views
1

我通過下面如果環我如何解釋下面提及UTF-8的範圍

if (((current >= 0x20) && (current <= 0xD7FF)) 
       || ((current >= 0xE000) && (current <= 0xFFFD)) 
       || ((current >= 0x10000) && (current <= 0x10FFFF))) { 

      out.append(current); 

     } 

我想搜索的內容做這些範圍代表來了,但無處我得到了答案。你能幫我解釋這些範圍嗎?

+0

可能是UTF-8碼點:[https://en.wikipedia.org/wiki/UTF-8#Description](https://en.wikipedia.org/wiki/UTF-8#Description)和[http ://www.utf8-chartable.de/](http://www.utf8-chartable.de/) –

回答

1

這些是空間上方unicode字符的有效範圍。 0x20以下是控制字符(包括新行和製表符) 在0xD800和0xDFFF之間用於使用UTF-16對字符> 0xFFFF進行編碼。

注意:如果當前是char那麼current >= 0x10000總是錯誤的。如果currentint那麼out.append(current);將打印數字而不是字符。