Eliminar caracteres de un rango Unicode específico de una cadena

Tengo un programa que está dividiendo tweets en tiempo real desde la secuencia de Twitter. Antes de almacenarlos, los estoy codificando como utf8. Ciertos caracteres terminan apareciendo en la cadena como?, ??, o ??? En lugar de sus respectivos códigos Unicode y causan problemas. Tras una mayor investigación, encontré que los caracteres problemáticos son de labloque "emoticon", U + 1F600 - U + 1F64F, y el "VariosSímbolos y pictogramas "bloque, U + 1F300 - U + 1F5FF. Intenté eliminarlo, pero no tuve éxito ya que el emparejador terminó por reemplazar casi todos los caracteres de la cadena, no solo el rango de Unicode deseado.

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(" ");

¿Qué puedo hacer para eliminar estos caracteres?

Respuestas a la pregunta(4)

Su respuesta a la pregunta