Pergunta

Eu implementei um analisador sax em Java, estendendo o manipulador padrão. O XML tem um ñ em seu conteúdo. Quando atinge esse personagem, ele quebra. Imprimo a matriz de char no método do personagem e ele simplesmente termina com o personagem antes do ñ. O analisador parece parar depois disso, pois nenhum outro método é chamado, embora ainda haja muito mais conteúdo. ou seja, o método do endurecimento nunca mais é chamado. Alguém já encontrou esse problema antes ou tem alguma sugestão sobre como lidar com isso?

Foi útil?

Solução

Qual é a codificação no arquivo? Verifique se a declaração de codificação do arquivo corresponde a ele. Seu analisador pode estar inadimplente para ASCII ou ISO-8859-1. Você pode definir a codificação como assim

<?xml version="1.0" encoding="UTF-8"?>

O UTF-8 cobrirá esse personagem, apenas verifique se é isso que o arquivo realmente está.

Outras dicas

Se você estiver salvando seus XMLs no ASCII, só poderá usar a metade inferior (primeiros 128 caracteres) da tabela de caracteres de 8 bits. Para incluir caracteres acentuados ou outros em inglês em seu XML, você terá que salvar seu XML no UTF-8 ou escapar de seus charaters como ñ para ñ.

Eu enfrentei esse problema. O fluxo XML que você está alimentando deve ler como ASCII, codificar ascii para 'utf-8' dentro do código ou alterá-lo para o fluxo de caracteres e tudo ficará bem.

Algo assim vai te ajudar:

File F = new File(C://Location);
BuffeReader Readfile = new BufferReader(F);
InputSource Encode = new InputSource(Readfile);
Encode.setEncoding("UTF-8");
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top