suppression de caractères spécifiques d'un unicode gamme à partir d'une chaîne

J'ai un programme qui est parsting tweets en temps réel sur le flux twitter de l'api. Avant de les ranger, je suis d'encodage comme de l'utf-8. Certains personnages finissent par apparaître dans la chaîne ?, ??, ou ??? au lieu de leurs codes unicode et causer des problèmes. Après enquête, j'ai constaté que la problématique de caractères sont de la "émoticône" bloc, U+1F600 - U+1F64F, et les "Divers Les symboles Et les Pictogrammes" bloc, U+1F300 - U+1F5FF. J'ai essayé de l'enlever, mais n'a pas réussi le comparateur de fini par remplacer presque tous les caractères d'une chaîne, et pas seulement de mon choix unicode gamme.

String utf8tweet = "";
        try {
            byte[] utf8Bytes = status.getText().getBytes("UTF-8");

            utf8tweet = new String(utf8Bytes, "UTF-8");

        } 
        catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
Pattern unicodeOutliers = Pattern.compile("[\\u1f300-\\u1f64f]", Pattern.UNICODE_CASE | Pattern.CANON_EQ | Pattern.CASE_INSENSITIVE);
Matcher unicodeOutlierMatcher = unicodeOutliers.matcher(utf8tweet);
utf8tweet = unicodeOutlierMatcher.replaceAll(" ");

Que puis-je faire pour supprimer ces caractères?

Quand vous dites que ça ne fonctionne pas, exactement ce comportement voyez-vous? Au lieu d'utiliser l'intervalle [\\u1f300-\\u1f64f], avez-vous essayer d'utiliser un seul personnage et de voir si cela fonctionne? Je soupçonne que la regex syntaxe aurait des problèmes avec les caractères unicode.
Si vous voyez ? au lieu d'un caractère Unicode lors de l'affichage d'un encodés en Unicode string dans un composant d'interface graphique ou en IDE sortie de la console; ne vous inquiétez elle n'est pas due au codage Unicode, il est dû à un mauvais choix de la police d'affichage qui ne supporte pas les points de code Unicode comme le Latin-1 les polices de caractères (255 points de code uniquement). Essayez d'utiliser Unicode-les polices prises en charge comme Arial Unicode MS
Désolé de ne pas être précis! Par "pas de travail", je voulais dire que le personnage n'a pas été trouvé par le matcher, ou au moins la fonction replaceAll n'a pas été appliqué. Merci, eee! C'est un bon point. Cependant, je remarque des unicodes dans ma sortie (c'est à dire "u20A2"), tandis que les personnages en question sont toujours aussi ??

OriginalL'auteur Saiato | 2012-08-17