[VRaptor] Problema com encoding no upload de arquivo

8 respostas
R

Prezados,

Quando realizo upload de um arquivo XML, ao processar seu conteúdo no Controller, reparo que os caracteres especiais estão todos quebrados (o arquivo em si está com os caracteres especiais todos ok).

Meu form:

<form action="<%= request.getContextPath() %>/pessoa/upload" enctype="multipart/form-data" method="post">
	<fieldset>
		Arquivo: <input type="file" name="file"/> <input type="submit"/>
	</fieldset>
</form>

Alguém já passou por este problema?

Grato pela atenção!

8 Respostas

R

Tentei colocando no web.xml:

<context-param> <param-name>br.com.caelum.vraptor.encoding</param-name> <param-value>UTF-8</param-value> </context-param>

Mas também sem sucesso…

R

Coloquei no form:

E coloquei o encoding da jsp também para UTF-8, e nada. =(

Lucas_Cavalcanti

o arquivo xml foi salvo em utf-8?

R

Opa Lucas, obrigado por responder!

Sim, o arquivo está salvo em UTF-8, porém o problema persiste. =(

Lucas_Cavalcanti

bem estranho… no método que faz o upload, como vc está salvando/lendo o arquivo?

R

Dessa forma:

@Post
	@Path("/pessoa/upload")
	public void upload(UploadedFile dominio) {
		InputStream is = dominio.getFile();
		DataInputStream in = new DataInputStream(is);
		BufferedReader br = new BufferedReader(new InputStreamReader(in));
		String line = "";
		
		final StringBuffer content = new StringBuffer();
		
		while ((line = br.readLine()) != null) {
			content.append(line);
		}

               //Restante do processamento...

		result.redirectTo(this).formUpload();
	}
Lucas_Cavalcanti

Tenta usar um IOUtils.toString(is) ou ByteArrays.toString(is)… eles já fazem esse código, e já lidam com o encoding.

R

Lucas!

Deu certo dessa forma que você falou:

InputStream is = dominio.getFile(); final String content = IOUtils.toString(is, "UTF-8");

Obrigado! =D

Criado 28 de fevereiro de 2013
Ultima resposta 1 de mar. de 2013
Respostas 8
Participantes 2