Alguém sabe me informar se existe algum método em Java que trasnforme caracteres em código ascii e vice-verso? Só encontrei métodos que convertem para unicode e ele não conseguem converter os sinais de pontuação.
Já descobri como se faz. Não é necessário nehum método.
Para converter o caracter para o código ascii basta converte-lo para inteiro:
char caracter = ‘c’;
int char = character;
Para converter o inteiro para character:
int carac = 12;
char caracter = (char) carac;
Java nao trabalha com ASCII! Tome cuidado com isso - provavelmente, o seu codigo nao vai funcionar com conjuntos de caracteres diferentes, por exemplo, em outro sistema operacional, ou se alguem resolve rodar seu sistema num windows em chines…
olha na api
java.lang.Character
acho q deve ter algum metado que faça isso…
acho q java trabalha com unicode( www.unicode.org ) tbm…
Pessoal o que acontece é que o unicode é igual ao ASCII ou ANSI até o número 127 e do 160 até o 255 eu criei uma classe para trabalhar com isto segue anexo.
[code]import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
- A Classe Converssoes é uma classe que executa conversões de tipos de caracteres.
- Programador: Michel Max Alves da Silva
- Data: 16 de julho de 2008 08:28
- @author Michel Max Alves da Silva
-
@version 1.00
/
public class Conversoes {
/*- Método de conversão de código UniCode para ANSI.
-
Programador: Michel Max Alves da Silva
- Data: 16 de julho de 2008 08:28
- @author Michel Max Alves da Silva
- @param iUniCode Número do Código UniCode.
-
@return Código ANSI (int).
/
public int getANSI(int iUniCode){
int iReturn=0;
try{
if (iUniCode<352){
iReturn = iUniCode;
}
else{
switch(iUniCode){
case 352:
//?
iReturn = 138;
break;
case 353:
//?
iReturn = 154;
break;
case 338:
//?
iReturn = 140;
break;
case 339:
//?
iReturn = 156;
break;
case 376:
//?
iReturn = 159;
break;
case 381:
//?
iReturn = 142;
break;
case 382:
//?
iReturn = 158;
break;
case 402:
//?
iReturn = 131;
break;
case 710:
//?
iReturn = 136;
break;
case 732:
//?
iReturn = 152;
break;
case 8211:
//?
iReturn = 150;
break;
case 8212:
//?
iReturn = 151;
break;
case 8216:
//?
iReturn = 145;
break;
case 8217:
//?
iReturn = 146;
break;
case 8218:
//?
iReturn = 130;
break;
case 8220:
//?
iReturn = 147;
break;
case 8221:
//?
iReturn = 148;
break;
case 8222:
//?
iReturn = 132;
break;
case 8224:
//?
iReturn = 134;
break;
case 8225:
//?
iReturn = 135;
break;
case 8226:
//?
iReturn = 149;
break;
case 8230:
//?
iReturn = 133;
break;
case 8240:
//?
iReturn = 137;
break;
case 8249:
//?
iReturn = 139;
break;
case 8250:
//?
iReturn = 155;
break;
case 8364:
//?
iReturn = 128;
break;
case 8482:
//?
iReturn = 153;
break;
default:
iReturn = iUniCode;
break;
}
}
}
catch(NumberFormatException Err){
createReport(Err.hashCode(), Err.getMessage(), "getANSI");
}
return iReturn;
}
/* - Método de conversão de código ANSI para char.
-
Programador: Michel Max Alves da Silva
- Data: 16 de julho de 2008 09:35
- @author Michel Max Alves da Silva
- @param iANSI Número do Código ANSI.
-
@return Caractere (char).
/
public char getCharByANSI(int iANSI){
char cReturn = 0;
try{
if (iANSI<127){
cReturn = (char) iANSI;
}
else{
switch(iANSI){
case 128:
//?
cReturn = (char) 8364;
break;
case 130:
//?
cReturn = (char) 8218;
break;
case 131:
//?
cReturn = (char) 402;
break;
case 132:
//?
cReturn = (char) 8222;
break;
case 133:
//?
cReturn = (char) 8230;
break;
case 134:
//?
cReturn = (char) 8224;
break;
case 135:
//?
cReturn = (char) 8225;
break;
case 136:
//?
cReturn = (char) 710;
break;
case 137:
//?
cReturn = (char) 8240;
break;
case 138:
//?
cReturn = (char) 352;
break;
case 139:
//?
cReturn = (char) 8249;
break;
case 140:
//?
cReturn = (char) 338;
break;
case 142:
//?
cReturn = (char) 381;
break;
case 145:
//?
cReturn = (char) 8216;
break;
case 146:
//?
cReturn = (char) 8217;
break;
case 147:
//?
cReturn = (char) 8220;
break;
case 148:
//?
cReturn = (char) 8221;
break;
case 149:
//?
cReturn = (char) 8226;
break;
case 150:
//?
cReturn = (char) 8211;
break;
case 151:
//?
cReturn = (char) 8212;
break;
case 152:
//?
cReturn = (char) 732;
break;
case 153:
//?
cReturn = (char) 8482;
break;
case 154:
//?
cReturn = (char) 353;
break;
case 156:
//?
cReturn = (char) 339;
break;
case 158:
//?
cReturn = (char) 382;
break;
case 159:
//?
cReturn = (char) 376;
break;
case 155:
//?
cReturn = (char) 8250;
break;
default:
cReturn = (char) iANSI;
break;
}
}
}
catch(NumberFormatException Err){
createReport(Err.hashCode(), Err.getMessage(), "getCharByANSI");
}
return cReturn;
}
/* - Método de Criação de Log de Erros da Classe.
-
Programador: Michel Max Alves da Silva
- Data: 18 de junho de 2008 13:50
- @author Michel Max Alves da Silva
- @param iErrNumber Número do Erro.
- @param sErrDescription Descrição do Erro.
-
@param sProcedure Método que causou o erro.
*/
private void createReport(int iErrNumber, String sErrDescription, String sProcedure){
String sClassName = “Conversoes”;
try{
File F = new File("");
SimpleDateFormat SDF = new SimpleDateFormat(“dd-MM-yyyy_-HH-mm-ss");
String sNow = SDF.format(new Date());
FileWriter FW = new FileWriter(F.getAbsolutePath() + "\ErrLog” + sNow + “.txt”);
PrintWriter PW = new PrintWriter(FW);
PW.println("Número do Erro: " + String.valueOf(iErrNumber) + “\r\n\r\nDescrição:\r\n” + sErrDescription + "\r\nClasse: " + sClassName + "\r\nProcedure: " + sProcedure);
FW.close();
PW.close();
}
catch(IOException Err){
System.out.println("Número do Erro: " + String.valueOf(iErrNumber) + “\r\n\r\nDescrição:\r\n” + sErrDescription + "\r\nClasse: " + sClassName + "\r\nProcedure: " + sProcedure);
}
}
}[/code]