Codificar String para download

Hey galera!!!

Estou fazendo um download de arquivo via Servlet.

Para retornar o download para o cliente, eu ajusto o cabeçalho da requisição com:

response.setHeader("Content-Disposition", "attachment;filename="
					+ URLEncoder.encode(attachment2.getName(), "ISO-8859-1"));

Porem o nome do arquivo me retorna como “arquivo+%20n+%32+%12+texto.txt” (inventei);

Ja esxiste algum “codificador” para, por exemplo, transformar ‘ã’ para ‘a’, espaço para ‘_’.

Valew gaelra

eu uso a funçao a baixo para limpar os caracteres, depois renomeio ou gravo com o nome.

public String trata (String passa){  
		passa = passa.replaceAll("[AÁÀÃåÅáàÄÂäâã]","a");  
		passa = passa.replaceAll("[EÉÈéèËÊëê]","e");  
		passa = passa.replaceAll("[IÍÌíìÏÎïî]","i");  
		passa = passa.replaceAll("[OÓÒóòÖÔöôÕõØøð]","o");  
		passa = passa.replaceAll("[UÚÙúùÜÛüû]","u");  
		passa = passa.replaceAll("[CÇç]","c");   
		passa = passa.replaceAll("[YÝýÿ]","y");  
		passa = passa.replaceAll("[NÑñ]","n");  
		passa = passa.replaceAll("[^ABCDEFGHIJLMNOPQRSTUVXZWYKabcdefghijlmnopqrstuvxzwyk0123456789.]","");
		//passa = passa.replaceAll("['<>\|/]","");  
		return passa;  
	} 

valew (Y)

vou usar sua função por enquanto.