Eliminar caracteres estranhos ?[RESOLVIDO]

Estou importando um arquivo em txt, estão aparecendo alguns caracteres estranhos, tem como eliminar ?

Exemplo : Ôªø123.456


FileReader file = new FileReader(pathArquivo);
BufferedReader reader = new BufferedReader(file);

while((linha = reader.readLine()) != null){

Desde já agradeço !

Metaleiro

tem como você postar um trecho de seu txt?

Creio que seja definições de arquivo texto para codificação de idiomas.

por exemplo: \u00E7 para Ç
\u00E3 para ã

Ele está assim :

123.456.789-101234567891011123SP

postei um trecho, na hora que ele importa, aparecem aqueles caracteres, meu arquivo está em UTF8

Obrigado !

http://download.oracle.com/javase/6/docs/api/java/text/Normalizer.html

procure por normalizer, talvez ajude.

att,

Oi!

Isso aqui resolve o seu problema.
Basicamente, é utilizar o método replaceAll com regex da seguinte forma:

suaString = suaString.replaceAll("[^\p{ASCII}]", ""));

Veja o link que lhe passei que exemplifica bem isso.
Abraços!!!

Se teu arquivo não tem caractéres especiais, salve-o como ANSI.

Isso vai resolver.

[quote=nel]Oi!

Isso aqui resolve o seu problema.
Basicamente, é utilizar o método replaceAll com regex da seguinte forma:

suaString = suaString.replaceAll("[^\p{ASCII}]", ""));

Veja o link que lhe passei que exemplifica bem isso.
Abraços!!!
[/quote]

Funciona bem, mas ele acaba ignorando os espaços em branco do meu arquivo, eu preciso deles, obrigado

Metaleiro

Como nosso amigo Vingdel mencinou, se seu arquivo não possuir char especial, salve como ansi, e faça o teste.

[quote=mateuscs]Metaleiro

Como nosso amigo Vingdel mencinou, se seu arquivo não possuir char especial, salve como ansi, e faça o teste.[/quote]

Meu arquivo obrigatoriamente tem que ser em ASCII, agora o único problema são os espaços em branco no arquivo.

Exemplo :

18.257.555-4 SSP 133442

Ele me coloca algo do tipo 18.257.555-4/254

Se alguém puder me ajudar, agradeço.

Obrigado a todos

[quote=Metaleiro][quote=mateuscs]Metaleiro

Como nosso amigo Vingdel mencinou, se seu arquivo não possuir char especial, salve como ansi, e faça o teste.[/quote]

Meu arquivo obrigatoriamente tem que ser em ASCII, agora o único problema são os espaços em branco no arquivo.

Exemplo :

18.257.555-4 SSP 133442

Ele me coloca algo do tipo 18.257.555-4/254

Se alguém puder me ajudar, agradeço.

Obrigado a todos[/quote]

Oi! O que seria “meu problema são os espaços em branco” ?
E o que aquele regex que lhe passei faz que não atende a sua necessidade?
E por fim, esse “18.257.555-4/254” seria a saida para uma String com contéudo igual a “18.257.555-4 SSP 133442” ?

Abraços.

[quote=nel][quote=Metaleiro][quote=mateuscs]Metaleiro

Como nosso amigo Vingdel mencinou, se seu arquivo não possuir char especial, salve como ansi, e faça o teste.[/quote]

Meu arquivo obrigatoriamente tem que ser em ASCII, agora o único problema são os espaços em branco no arquivo.

Exemplo :

18.257.555-4 SSP 133442

Ele me coloca algo do tipo 18.257.555-4/254

Se alguém puder me ajudar, agradeço.

Obrigado a todos[/quote]

Oi! O que seria “meu problema são os espaços em branco” ?
E o que aquele regex que lhe passei faz que não atende a sua necessidade?
E por fim, esse “18.257.555-4/254” seria a saida para uma String com contéudo igual a “18.257.555-4 SSP 133442” ?

Abraços.[/quote]

Não, quando pego minha String ele está substituindo todos os espaços em branco por \240\240\240, ele substitui todos eles por isso, e minha aplicação dá erro, muito obrigado !

É o único problema que ainda sobra os espaços em branco, quando leio a o arquivo ele substitui por isso.

POST DUPLICADO :arrow:

Você já tentou fazer assim?

BufferedReader reader = new BufferedReader( new InputStreamReader(new FileInputStream(pathArquivo), "UTF8"));

[quote=Vingdel]Você já tentou fazer assim?

BufferedReader reader = new BufferedReader( new InputStreamReader(new FileInputStream(pathArquivo), "UTF8"));

[/quote]

Ocorreu o seguinte :

The constructor BufferedReader(InputStreamReader) is undefined

encontrei isso na net :

BufferedReader

Obrigado

Você tem que importar o pacote.

import java.io.*;

[]'s

[quote=Vingdel]Você tem que importar o pacote.

import java.io.*;

[]'s[/quote]

Não, o problema não é importação amigo e sim que o construtor somente aceita um Reader e o FileInputStream não é um Reader :slight_smile:
Para remover os espaços em branco, use o:

suaString.split("\s");

Se isso não resolve seu problema, me mostre a String que você possui como entrada, dê uns dois exemplos e como gostaria que fosse a saída da mesma ok?
Abraços.

BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(pathArquivo), "UTF8"));

Pois então amigo, nel. BufferedReader pede um reader, que no caso é o InputStreamReader que por sua vez pede um InputStream. O que há de errado?

BufferedReader(Reader in)

InputStreamReader(InputStream in, String charsetName)

FileInputStream(String name)

Não está errada minha sugestão não… Confiram aí!

EDIT: Adicionei o resultado de um teste como imagem em anexo.


Op!

Não vi o InputStreamReader, só vi o FileInputStream e sim, funciona :slight_smile:

Obrigado a todos, o que disseram funcionou perfeitamente.

Quanto ao arquivo eu estou usando Mac OS e salvei em nom-lossy ASCII, foi isso o que causou os problemas nos espaços em branco, pedi para alguém ver e em outro sistema operacional os caracteres apareciam nos editores, para mim isso era invísivel.

Está tudo resolvido.

[quote=Vingdel]Você já tentou fazer assim?

BufferedReader reader = new BufferedReader( new InputStreamReader(new FileInputStream(pathArquivo), "UTF8"));

[/quote]

Opa… Resolveu aqui pra mim!!! vlw!!