Help caracteres Á,Ã,Ä, É,Ô

Galera preciso saber como eu posso mexer com esses tipos de caracteres no linux… tipo preciso saber se a letra passada e uma dessas abaixo…
{“À”,“Á”,“”,“Ô,“Ä”,“Å”,“È”,“É”,“Ê”,“Ë”,“Ì”,“Í”,“Δ,“Ï”,“Ò”,“Ó”,“Ô”,“Õ”,“Ö”,“Ù”,“Ú”,“Û”,“Ü”};
ja tentei com a propria letra e nao funciona… nao sei se da pra mexer com o codigo ASCII de cada uma. alguem sabe um jeito de mexer com eles sem dar problema (linux e windows) preciso desse help urgente…

Att, Fabio Ebner

Oi tua pergunta está um pouco vaga, mexer como??? passar de onde para onde???

me adiantando, no linux vc tem que mexer no locale quando por exemplos esses caracteres são passados pelas mensagens, como por exemplo Cliente/Servidor e principalmente quando as plataformas são Linux -> Windows e vice-versa…

E dependendo da sua distribuição linux o tratamento do locale eh diferente… mas a principio, para o linux reconhecer esses caracteres vc tera que setar as seguinte variáveis…

export LANG=pt_BR.iso88591
export LC_ALL=pt_BR.iso88591

No debian, tivemos que colocar no profile…
e se vc esta usando banco de dados ainda existe um outro tratamento … ou seja, explica melhor o problema…
Espero que ajude,
beijos

Entao… nos aqui usamos o red Hat 8(servidor)… e windows 2000 ( estacoes) o problema e o seguinte… tenho uma classe que faz a fonetica de um nome… e em determinada hora dessa classe tem o seguinte metodo

public static String substituirVogais(String _palavra){

  String _arrayBusca[] = new String[]{"À","Á","Â","Ã","Ä","Å","È","É","Ê","Ë","Ì","Í","Î","Ï","Ò","Ó","Ô","Õ","Ö","Ù","Ú","Û","Ü"};
  String _arrayTroca[] = new String[]{"A","A","A","A","A","A","E","E","E","E","I","I","I","I","O","O","O","O","O","U","U","U","U"};

  for(int _contador = 0; _contador < _arrayBusca.length; _contador++){
     _palavra = _palavra.replaceAll(_arrayBusca[_contador],_arrayTroca[_contador]);
     
  }
  return _palavra;

} que nada mais faz do que transformar os varios tipos de vogais com acentuacao em vogais sem acentuacao… e estou com problema na hora de compilar… qdo eu compilo pelo window ele compila normal. mas qdo eu passo para o linux e vou compilar ele mostra q o erro esta nessa linha… so q ele mostra uns ? do lado das vogais… porque eu tenho a mesma rotina feita em PHP so q eu utilizo o valor ASCII dos caracteres. dai funciona perfeito… mas nao consegui recuperar o valor ASCII em java… espero que vc tenha me entendi…

e obrigado pela ajuda

tenho a tela de erro se vc quiser dar uma olhada… esta em
http://www.dnasolution.com.br/teste/erro.jpg

tenta usar isso:

char c = 'Á';
int ascii = (int)c;

ae vc vai ter os caracteres em int… ae qndo for usar eles em algum lugar usa

(char)ascii

acho q resolve seu problema…

Esse erro nao tem NADA haver com o seu código…, seu código está corretíssimo, existem inumeras maneiras de resolver esse seu problema, e a sua maneira eh uma delas… mesmo fazendo de outro jeito esse erro VAI acontecer, porque isso eh “problema” do linux…

Então deixa eu tentar de explicar mais uma coisa, o erro “… unmappable character for econding UTF8” está falando que o locale do seu linux está setado para caracteres, como o povo aqui fala, “americano”, logo ele NAO RECONHECE os nossos caracteres, os acentuados. Para que isso aconteca, voce tem que “avisar” ao linux que caracteres ele terá que “ler”, no nosso caso eh o portugues_brasil respeitando a iso 88591 (onde os caracteres acentuados estao), portanto sugiro que voce de os comandos que falei pra voce, ou seja,

export LANG=pt_BR.iso88591
export LC_ALL=pt_BR.iso88591

esses comandos são dados na shell que vc vai compilar seu sistema e toda vez que vc abrir uma shell nova terá que colocar esses comandos, mas caso vc queira deixar isso default, voce coloca isso no seu arquivo .bashrc (arquivo oculto) que você o encontra no seu home “~”, voce coloca da seguinte maneira no final do arquivo

LANG=pt_BR.iso88591
LC_ALL=pt_BR.iso88591

export LANG LC_ALL

Estou certa que depois que vc fizer isso seu sistema pode até da erro, mas certamente sera OUTRO erro.

e mais uma vez, espero que tenha ajudado
beijos

ah… e mais uma coisa…

para de compilar seu sistema como “super-usuário” (root), isso eh muito perigoso…:smiley:

beijos…

Para remover os acentos tente este código:

import sun.text.Normalizer;

public class Accent {
   public static String value = "é à î _ @";

   public static void main(String args[]) throws Exception{
       System.out.println(formatString(value));
       // output : e a i _ @
   }

   public static String formatString(String s) {
        String temp = Normalizer.normalize(s, Normalizer.DECOMP, 0);
        return temp.replaceAll("[^\\p{ASCII}]","");
    }

}

Só testei em WinXP, SUSE e Mandrake e funcionou bem.

[size=“11”][color=“red”]* Editado: Lembre-se de utilizar BBCode em seus códigos - Matheus [/color][/size] :joia: