# INT to ASCII-char



## ByeBye 46085 (19. Dezember 2006)

Hallo,

wie konvertiert man einen Integerwert (0-255) in einen Ascii-Charakter?

So funktioniert die Ausgabe:

```
aus.write("Ž");
```
das nicht:

```
int x = 142;
aus.write(x);
```

Wie kann ich die Konvertierung durchführen?


```
out = serss.getOutputStream();
Charset cs = Charset.forName("US-ASCII");
OutputStreamWriter aus = new OutputStreamWriter(out,cs);
```

Gruss Markus


----------



## frager (19. Dezember 2006)

also entweder so:


```
aus.write((char)x);
```
oder so

```
aus.write("" + x);
```

kommt drauf an, was du genau brauchst, einen char, den diese Zahl repraesentiert oder eine Stringdarstellung dieser Zahl...

mfg, frager


----------



## ByeBye 46085 (19. Dezember 2006)

Hallo,

ich möchte die Zahlen von 0-255 übertragen. Die Umwandlung nach String oder char ist nur ein Zwischen schritt. Da es direkt nicht funktioniert. Mit dem cast (char) werden nicht alle 256 Werte richtig umgewandelt (Java arbeitet mit Unicode). Mit Ascii geht jedoch (mein erstes Codebeispiel ist binär die Zahl 142). Nun muss ich nur noch aus einem Integer ein ASCII-Zeichen erstellen können.

Danke trotzdem.

Gruss Markus


----------



## Agnus (4. Januar 2007)

wandel den int doch in ein byte... und dann mit new String(byte[]) in einen String, wenn es unbedingt ein String sein muss. Du kannst bei der Konvertierung zw. byte[] und String noch ein Charset-Encoding angeben, z.B. UTF-8 oder ISO-8859-1. Damit wird die Abbildung der Bytes in Unicode-Zeichen konfiguriert.

zu obiger Aussage ein Beispiel:

```
int value = 255;

byte[] b = { (byte)value };

String result = new String(b);

// do something with result....
```


Gruß
Udo


----------



## Sarah Schüßler (8. November 2007)

Geht es auch einfacher bzw. anders?
Möchte gern die ersten 25Unicode(Buchstaben) ausgeben lassen- habe die Integerwerte bereits. 
So dass es ungefähr so aussieht:
0 A
1 B
2 C
....


----------



## Anime-Otaku (9. November 2007)

```
for (int i=0;i<25;i++) {
char c = (char) i;

System.out.println(c);
}
```

Also noch einfacher gehts kaum.


----------



## Sarah Schüßler (9. November 2007)

Ja danke! Hatte das schonmal ausprobiert, aber nicht bedacht dass der Unicode von 'A' gleich 65 ist und nicht '0'..musste also einfach +65 ausführen.


----------



## Anime-Otaku (9. November 2007)

A ist halt unter der Zahl 65 im PC bekannt....das hat nichts mit einer Verschiebung zu tun. Das wurde einfach so vereinbart....und dabei sind wir noch nicht mal im unicode Bereich....das ist noch ASCII:

http://www.torsten-horn.de/techdocs/ascii.htm


----------

