Código ASCII

4 respostas
G

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.

4 Respostas

G
 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;
cv1

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… :wink:

Hempx

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…

Michel_Max
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.
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 <b>Converssoes</b> é uma classe que executa conversões de tipos de caracteres.
 * Programador: Michel Max Alves da Silva<br>
 * 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.
     * <br>Programador: Michel Max Alves da Silva<br>
     * 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&lt;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(), &quot;getANSI&quot;);
        }
        return iReturn;
    }
    /** 
     * Método de conversão de código ANSI para char.
     * <br>Programador: Michel Max Alves da Silva<br>
     * 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&lt;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(), &quot;getCharByANSI&quot;);
        }
        return cReturn;
    }
    /** 
     * Método de Criação de Log de Erros da Classe.
     * <br>Programador: Michel Max Alves da Silva<br>
     * 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);
        }
    }
}
Criado 13 de outubro de 2003
Ultima resposta 16 de jul. de 2008
Respostas 4
Participantes 4