Bom dia pessoal … Olha eu aqui outra vez …
O caso é o seguinte, estou desenvolvendo uma aplicação web, e estou tendo alguns problemas com relação a acentuação.
Vamos por partes …
Todos os dados que são mostrados na página de resultado, são recuperados do banco de dados; porém uma parte desses dados, foi compactada com a Zlib e esta armazenada em campos binary, eu recupero eles numa boa e tals, mas como muitas vezes são textos longos, eu tenho que “justificar” a string antes de enviar para ser exibida … eu acredito que o problema está na forma em que eu fiz esse “justificador” ( fiz meio na correria pq tinha que coloar isso logo no ar … ) :oops:
O que acontece é que os outros textos ficam com acentuação normal, mas esse que é justificado, onde tem acento é exibido ‘?’ por exemplo contribuição vira contribui??o … O mais gozado é que na minha maquina, funciona mas quando publico isso, num servidor Linux SuSe, acontece isso…
Vou postar aqui o código que faz essa “justificação”
Desde já agradeço qualquer ajuda.
Ronaldo.
try {
StringBuffer sbtmp = new StringBuffer(txt.trim()) ;
sbtmp.append(" ") ;
char[] c = sbtmp.toString().toCharArray() ;
StringBuffer sr = new StringBuffer() ;
String spaces = " " ;
int ini = 0 ;
int limit = 0 ;
if (c.length-1 > 49)
limit = 49 ;
else
limit = c.length-1 ;
int fin = limit ;
int nLoop = 0 ;
while (nLoop != 2) {
while (c[fin] != ' ') {
fin -- ;
}
sbtmp = new StringBuffer() ;
sr.append(spaces) ;
for (int k = ini; k < fin; k++) {
sbtmp.append(c[k]) ;
}
sr.append(sbtmp.toString().trim()+"<br>\r\n") ;
ini = fin ;
fin += limit ;
if (fin > c.length-1) {
ini = fin - limit ;
fin = c.length-1 ;
nLoop++ ;
}
}
ByteArrayOutputStream bout = new ByteArrayOutputStream() ;
Writer out = new BufferedWriter(
new OutputStreamWriter(bout, "ISO-8859-1"));
out.write(sr.toString()) ;
out.flush() ;
return new String(bout.toByteArray()) ;
} catch (Exception e) {
// TODO arrumar isso !
e.printStackTrace();
return " " ;
}