2016-11-07 3 views
1

Je suis passé par-dessous si boucleComment puis-je interpréter Mentionnés ci-dessous UTF-8 gamme

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

      out.append(current); 

     } 

Je suis en train de chercher ce qui ne représente ces choix, mais nulle part je reçois la réponse. Pouvez-vous m'aider à interpréter ces gammes?

+0

Probablement codes UTF-8: [https://en.wikipedia.org/wiki/UTF-8#Description](https://en.wikipedia.org/wiki/UTF-8#Description) et [http : //www.utf8-chartable.de/] (http://www.utf8-chartable.de/) –

Répondre

1

Ce sont les plages valides pour le caractère Unicode au-dessus de l'espace. En dessous de 0x20, les caractères de contrôle (y compris les nouvelles lignes et les tabulations) Entre 0xD800 et 0xDFFF est utilisé pour le codage des caractères> 0xFFFF en utilisant UTF-16.

Remarque: si le courant est un char alors current >= 0x10000 est toujours faux. Si current est int alors out.append(current); affichera le nombre et non les caractères.