Como faço para converter isso
"AUTORIZA╟├O DE PESQUISA"
Para isso:
"AUTORIZAÇÃO DE PESQUISA"
Atente para o “Ç” e o “Ô
Obrigado desde já
Como faço para converter isso
"AUTORIZA╟├O DE PESQUISA"
Para isso:
"AUTORIZAÇÃO DE PESQUISA"
Atente para o “Ç” e o “Ô
Obrigado desde já
String s = "AUTORIZA╟├O DE PESQUISA";
s = s.replace("╟", "Ç").replace("├", "Ã");
System.out.println(s);
Pô! ai não vale né!?
Deve ter alguma coisa a ver com caracter Unicode
Isso foi um erro de conversão de ASCII Estendido para Unicode.
╟ é 199 em ASCII Estendido, e Ç em ISO 8859-1 e UTF8
├ é 195 em ASCII Estendido, e à em ISO 8859-1 e UTF8.
Tente este:
import java.io.UnsupportedEncodingException;
public class tradutor {
public static void main(String[] args)
{
try
{
String s = "AUTORIZA╟├O DE PESQUISA";
byte[] bytes = s.getBytes("CP437");
String resultado = new String(bytes);
System.out.println(resultado);
}
catch (UnsupportedEncodingException ex)
{
}
}
}
Porra Bruno!
Caraca!
Tu não tens idéia de como me ajudou, são 22:30, acordo as 4:45 para trabalhar, estou até agora tentando encontrar uma solução.
Fique focado em adquirir um JDBC FREE para isso.
Amanhã cedo tenho que mostrar 27 arquivos convertidos, em média 30 mil registros cada.
Muito Obrigado mesmo.
Bom dia!
Mas um problema sobre conversão
No Arquivo a ser convertido aparece assim:
AUTORIZA╟├O DE PESQUISA
Quando resgato, aparece assim:
AUTORIZA¦+O DE PESQUISA
O que devo usar para o mesmo aparecer assim:
AUTORIZAÇÃO DE PESQUISA
Qual Charset?
Desde já obrigado.
Como assim “quando resgato”? Não está convertendo corretamente ou é outro arquivo com charset diferente??
Poxa cara!
Estou sendo cobrado pra caramba sobre isso.
Acho que o bicho vai pegar.
Esse é meu código
private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {
try {
//DBF ===================================
//Registrar o Driver JDBC do banco de dados, neste caso estou usando o DBF
String conexao = "com.hxtt.sql.dbf.DBFDriver";
//Carrega o Driver a ser utilizado
Class.forName(conexao).newInstance();
//Indica o caminho do arquivo
String caminho = "C:\Sistemas\Java\DeskTop\TMSystem\orthers\BackupBancoDados\DBF´s";
// String de conexao para o DBF
String url = "jdbc:DBF:/" + caminho;
//Faz um SELECT no arquivo
String sql = "SELECT * FROM PA";
//OBS.: Não coloque a extensão do arquivo, deixe sem .DBF
//Abre uma conexão com o arquivo
Connection conn = DriverManager.getConnection(url);
// recuperar a classe Stamtemant a partir da conexao criada
Statement stmt = conn.createStatement();
//Retorna o resultado da Query
ResultSet rs = stmt.executeQuery(sql);
//Pegar o valor da(s) coluna(a) já no tipo desejado String, int, Date, etc...
//
String ultimoEvento = new String("");
Processos processo = new Processos();
String ID = new String("");
while (rs.next()) {
// ID = rs.getString("ID");
// if (ID.equals("{8E3A2A67-A5EB-4B6C-B092-60C52842966E}")) {
processo.setNumeroProcesso(rs.getInt("Numero"));
processo.setAnoProcesso(rs.getShort("Ano"));
// processo.setID_RegistroProcesso(rs.getString("ID"));
processo.setID_RegistroProcesso(ID);
processo.setArea_HA(rs.getFloat("Area_HA"));
processo.setDescricaoFase(rs.getString("Fase"));
processo.setRequerente(rs.getString("Nome"));
ultimoEvento = rs.getString("Ult_Evento");
processo.setCodigoEvento(new Short(ultimoEvento.substring(0, ultimoEvento.indexOf(" - "))));
processo.setDescricaoEvento(ultimoEvento.substring(ultimoEvento.indexOf(" - ") + 3, ultimoEvento.length() - 14));
processo.setDataEvento(new GregorianCalendar(Integer.parseInt(ultimoEvento.substring(ultimoEvento.length() - 10, ultimoEvento.length()).substring(6, 10)),
Integer.parseInt(ultimoEvento.substring(ultimoEvento.length() - 10, ultimoEvento.length()).substring(3, 5)) - 1,
Integer.parseInt(ultimoEvento.substring(ultimoEvento.length() - 10, ultimoEvento.length()).substring(0, 2))));
processo.setSubstancia(rs.getString("Subs"));
processo.setAplicacao(rs.getString("Uso"));
processo.setUF(rs.getString("UF"));
// processo.setDataInclusaoRegistro(new GregorianCalendar().setTime(new Date()));
// processo.setDataAlteracaoRegistro(new GregorianCalendar());
processo.setDataInclusaoRegistro(new GregorianCalendar(2008, 9, 6));
processo.setDataAlteracaoRegistro(new GregorianCalendar(2008, 9, 6));
processo.setMatriculaUsuario(new Short("1"));
System.out.println(processo.getDescricaoFase() + " - " + processo.getRequerente() + " - " + processo.getDescricaoEvento() + " - ");
ManutencaoTabela.IncluiRegistro(processo, Conexao);
// }
}
rs.close();
stmt.close();
conn.close();
} catch (Exception e) {
System.out.println("Oops-> " + e);
}
}
Essa aqui é a linha do arquivo
853853 1993 853853/1993 {F9BA7CE6-ABDB-4AB1-8C97-90917F864B5C} 50,00000000000 AUTORIZA╟├O DE PESQUISA JO├O IVAN BEZERRA DE ALMEIDA 255 - AUT PESQ/CUMPRIMENTO EXIG╩NCIA PROTOCOLI EM 31/01/2006 OURO N├O INFORMADO PA
Quando executo o processo.setDescricaoFase(rs.getString("Fase"));
Aparece isso
AUTORIZA¦+O DE PESQUISA
E preciso converter para isso
AUTORIZAÇÃO DE PESQUISA
Muito estranho né!?
O que eu consigo pensar no momento é usar bytes = rs.getBytes no lugar de rs.getString, depois usar um new String(bytes, “CP437”) p/ tentar converter p/ String no charset certo.
Pois é!
Tb. acredito nisso
Só que não funciona porque quando leio isso
AUTORIZA╟├O DE PESQUISA
automaticamento ele converte para isso
AUTORIZA¦+O DE PESQUISA
então quando aplicamos isso
s.getBytes(“CP437”)
Converte errado.
Temos que converter isso
AUTORIZA¦+O DE PESQUISA
para isso
AUTORIZAÇÃO DE PESQUISA
Já queimei os meus neurônios aqui. ├ para + não tem sentido.
Não tem nenhuma opção para passar na conexão ou no JDBC para ele mudar o encoding que ele usa na leitura?
Valeu Amigo!
Deixe quieto!
Verei outra solução.
Só comprando mesmo o JDBC de “com.hxtt.sql.dbf.DBFDriver”.