Como remover caracteres unicode não válidos de strings em java

Estou usando oAnalisador de Dependência de Rede Neural CoreNLP para analisar algum conteúdo de mídia social. Infelizmente, o arquivo contém caracteres que são, de acordo comfileformat.info, caracteres unicode inválidos ou caracteres de substituição unicode. Estes são por exemploU + D83D ouU + FFFD. Se esses caracteres estiverem no arquivo, o coreNLP responderá com mensagens de erro como esta:

Nov 15, 2015 5:15:38 PM edu.stanford.nlp.process.PTBLexer next
WARNING: Untokenizable: ? (U+D83D, decimal: 55357)

Baseado emesta resposta, eu tenteidocument.replaceAll("\\p{C}", ""); para apenas remover esses caracteres.document aqui está apenas o documento como uma string. Mas isso não ajudou.

Como posso remover esses caracteres da string antes de passá-los para o coreNLP?

ATUALIZAÇÃO (16 de novembro):

Por uma questão de integridade, devo mencionar que fiz essa pergunta apenas para evitar a enorme quantidade de mensagens de erro pré-processando o arquivo. O CoreNLP simplesmente ignora os caracteres que ele não pode manipular, então esse não é o problema.

questionAnswers(4)

yourAnswerToTheQuestion