Como lidar com problemas de codificação java (especialmente xml)?
Pesquisei sobre java e codificação e não encontrei um recurso explicando como lidar com problemas comuns que surgem em java ao codificar e decodificar seqüências de caracteres. Existem muitas perguntas específicas sobre erros únicos, mas não encontrei um amplo guia de resposta / referência para o problema. As principais perguntas são:
O que é codificação de String?
Por que em Java posso ler arquivos com caracteres errados?
Por que, ao lidar com xml, recebi o byte x inválido da exceção UTF-8 da seqüência de bytes y? Quais são as principais causas e como evitá-las?