# Ausgabe ASCII Zeichen



## tanzverfuehrung (31. Mrz 2011)

also ich sehe einfach grad nicht durch soll eigentlich ein anderes programm schreiben
also das dezimalzahlen in ascii zeichen dargestellt werden
aber rigendwie schon beim einfachsten programm zeigt er mir keine zeichen an sondern nur rechtecke oder fragezeichen!(zumindestens bei den zeichen die ich brauche!)

wie kann ich das noch anders darstellen?oder wieso sehe ich diese zeichen nicht?!


```
public class Ascii_umrechnung {

	/**
	 * Methode zur Umrechnung von Dezimalzahlen in Ascii Zeichen 
	 */

	public static void main(String[] args) {
		
		
		for(char i=0000; i<9900; i++)
			System.out.println(i+" "+((int)i));
	
		}
}
```


hoffe mir kann jemand weiter helfen!:shock:
irgendwie was mit /u0002  oder so gibt es ja auch aber ich finde da auch nicht wirklich ne ordentliche tabelle oder beispiele zu;(;(;noe:


----------



## SlaterB (31. Mrz 2011)

wenn du keine ASCII-Tabelle (Achtung, Such-Stichwort!) im Internet findest, dann ist ja jede Hoffnung verloren,

zur Java-Ausgabe ist zu sagen, dass die typische Konsole in Entwicklungsumgebung oder Betriebssystem eben keine komplizierten Zeichen anzeigen kann sondern dann Rechtecke und Co. ausgibt,
das geht bei dir nicht und wenn es dich tröstet auch bei niemand sonst, dies ist keine Grundfunktion von Java sondern ein komplexes Thema


----------



## SlaterB (31. Mrz 2011)

Vorsicht übrigens, 0000 ist == 0, aber 0010 ist nicht 5+5


```
public class Test
{
    public static void main(String[] args)
    {
        System.out.println(10 == 5 + 5);
        System.out.println(0010 == 5 + 5);
        System.out.println(0010 == 5 + 3);
    }
}
```


----------



## tanzverfuehrung (31. Mrz 2011)

SlaterB hat gesagt.:


> wenn du keine ASCII-Tabelle (Achtung, Such-Stichwort!) im Internet findest, dann ist ja jede Hoffnung verloren,
> 
> zur Java-Ausgabe ist zu sagen, dass die typische Konsole in Entwicklungsumgebung oder Betriebssystem eben keine komplizierten Zeichen anzeigen kann sondern dann Rechtecke und Co. ausgibt,
> das geht bei dir nicht und wenn es dich tröstet auch bei niemand sonst, dies ist keine Grundfunktion von Java sondern ein komplexes Thema





klar finde ich ascii tabellen....und dass das bei allen ist kann ja sein aber irgendwie muss man das doch darstellen können oder nicht?:bahnhof::bahnhof::bahnhof:


also ich dachte das es irgendwie gehts weil auch die datei die es ausgeben soll...zeigt die zeichen nciht richtig an!;(???:L


----------



## tanzverfuehrung (31. Mrz 2011)

SlaterB hat gesagt.:


> Vorsicht übrigens, 0000 ist == 0, aber 0010 ist nicht 5+5
> 
> 
> ```
> ...



was hat das mit meiner frage zutun!????:L???:L???:L???:L


und wieso ist :
        System.out.println(0010 == 5 + 5);

false????:L

und wieso ist :
        System.out.println(0010 == 5 + 3);
true????:L


----------



## SlaterB (31. Mrz 2011)

hast du aus irgendeiner Quelle eine Textdatei oder ein Programm dass auf der Konsole derartiges ausgibt?
nein, denn soetwas gibt es nicht, genau wie du auf der Konsole keinen 10cm Kreis malen kannst,

Webseiten und Bilder sind hochstylische manuell zusammengebastelte Sonderbarkeiten

------

'übrigens' leitet gerade ein dass es nichts mit der Frage zu tun hat, nur ein Hinweis nebenbei,
eine führende 0 leitet in Java eine Octalzahl ein, keine führenden 0en schreiben


----------



## tanzverfuehrung (31. Mrz 2011)

SlaterB hat gesagt.:


> hast du aus irgendeiner Quelle eine Textdatei oder ein Programm dass auf der Konsole derartiges ausgibt?
> nein, denn soetwas gibt es nicht, genau wie du auf der Konsole keinen 10cm Kreis malen kannst,
> 
> Webseiten und Bilder sind hochstylische manuell zusammengebastelte Sonderbarkeiten
> ...



und wie kriege ich zum beispielt
von den asci darstellungen ☺☻♥
die unicodes raus?
also /u????

das müsste mich doch weiter bringen oder nicht!?:bahnhof:???:L


----------



## SlaterB (31. Mrz 2011)

etwas fähige als eine Konsole/ Text-Datei ist z.B. eine Swing-GUI mit JTextField/ JTextArea,
da kann es aber auch von im Betriebssystem installierten Schriftarten abhängen,

wenn du aber im Browser die lustigen Bilder siehst, dann könnte es was werden,
allzuviel kann ich dazu gar nicht sagen, aber um nicht nur zu meckern nun gleich noch ein ganzes Testprogramm:


```
public class TestGUI  extends JFrame {
    public TestGUI()  {
        JTextArea area = new JTextArea();
        JScrollPane sp = new JScrollPane(area);
        add(sp);
        for (int i = 9786; i < 9886; i++)  {
            area.append("i: " + i + "- " + (char)i + "\n");
        }
        setSize(450, 350);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
    }

    public static void main(String[] args) {
        new TestGUI();
    }
}
```
bei mir sieht es so aus wie im Anhang zu sehen, auch nicht alle Zeichen dargestellt,
die Rechtecke dort kann vielleicht auch ein Browser nicht,
oder nur von weiteren Einstellungen (andere Schriftart) abhängig

edit: ok, 9786 kann man auch auf der Konsole ausgeben und dann einen Smily sehen, zumindest bei mir,
der Wert ist nun wirklich keine Hürde

edit 2: so hohe char-Codes sind auch nicht wirklich mehr ASCII-Bereich? eher Unicode


----------



## tanzverfuehrung (31. Mrz 2011)

gibt es nicht eine schriftart wo man alle ascii zeichen in eclipse sieht?!:bahnhof:???:L???:L???:L


☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼


;(ich brauche diese zeichen !!:rtfm::noe:


----------



## XHelp (31. Mrz 2011)

Wozu willst du die *in eclipse* sehen?
Außerdem gehören die Zeichen doch gar nicht zu ascii.

P.S. Nach dem verschieben ergibt die Frage auch direkt mehr Sinn... dennoch musst du etwas ausführlicher beschreiben was du versuchst zu sagen.


----------



## tanzverfuehrung (1. Apr 2011)

XHelp hat gesagt.:


> Wozu willst du die *in eclipse* sehen?
> Außerdem gehören die Zeichen doch gar nicht zu ascii.
> 
> P.S. Nach dem verschieben ergibt die Frage auch direkt mehr Sinn... dennoch musst du etwas ausführlicher beschreiben was du versuchst zu sagen.



ok also ausführlicher.:toll:
also ich will die empfangenden und gesendeten datein(RX/TX) in einer RCP application darstllen.
Erst wird es in Hexa Darstellung dargestellt und dann kommt die Ascii darstellung!
so das problem ist das ich nicht alle Ascii Zeichen sehe!

RCP APplication BEispielAusgabe)
2011.04.01   08:09:14.799
CommonDiff: 1013   SpecialDiff: 0
00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f   ♰鞆鞇頩頰頧頤•隈蜨隉鞔銒頴頵☼
10 11 12 13                                       ►◄↕‼


???:L:bahnhof:

eigentlich müsste da stehen:
2011.04.01   08:09:14.799
CommonDiff: 1013   SpecialDiff: 0
00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f   ♰☺☻♥♦♣♠•◘○◙♂♀♪♫☼
10 11 12 13                                                           ►◄↕‼



ich hatte soagr extra ne Klasse charMApper programmiert und trotzdem geht das nicht!


```
public class CharMapper {

	/**
	 * 
	 */
	public CharMapper() {}

	/**
	 * Liefert das AscII-Zeichen für das übergebene Byte
	 * @param b
	 * @return
	 */
	public static char getCharForByte(byte b) {
		switch (b) {
			case 0:	return '♰';
			case 1:	return '☺';
			case 2:	return '☻';
			case 3:	return '♥';
			case 4:	return '♦';
			case 5:	return '♣';
			case 6:	return '♠';
			case 7:	return '•';
			case 8:	return '◘';
			case 9:	return '○';
			case 10:return '◙';
			case 11:return '♂';
			case 12:return '♀';
			case 13:return '♪';
			case 14:return '♫';
			case 15:return '☼';
			case 16:return '►';
			case 17:return '◄';
			case 18:return '↕';
			case 19:return '‼';
			case 20:return '¶';
			case 21:return '§';
			case 22:return '▬';
			case 23:return '↨';
			case 24:return '↑';
			case 25:return '↓';
			case 26:return '→';
			case 27:return '�';
			case 28:return '∟';
			case 29:return '↔';
			case 30:return '▲';
			case 31:return '▼';
		}
		
		return (char)b;
	}
}
```



aber irgendwie muss das ja umsetzbar sein oder?!?!???:L


----------



## XHelp (1. Apr 2011)

Wie kommst du denn darauf, dass:
1. die von dir geschriebenen komischen Zeichen überhaupt ASCII sind?
2. die Zuordnung genau so aussieht? Ascii Zeichen #10 steht für LineFeed, warum sollte es als denn plötzlich als Kreis dargestellt werden?


----------



## tanzverfuehrung (1. Apr 2011)

XHelp hat gesagt.:


> Wie kommst du denn darauf, dass:
> 1. die von dir geschriebenen komischen Zeichen überhaupt ASCII sind?
> 2. die Zuordnung genau so aussieht? Ascii Zeichen #10 steht für LineFeed, warum sollte es als denn plötzlich als Kreis dargestellt werden?




mir wurde das so erklärt das wenn ich alt drücke und dann die dezimalzahl das man dann das ascii zeichen sieht!
so habe ich das verstanden gehabt...!:bahnhof::rtfm:


ist das falsch ja?!???:L;(


----------



## XHelp (1. Apr 2011)

Ja, wenn du ALT+097 auf dem Ziffernblock drückst, dann bekommst du ein 
	
	
	
	





```
a
```
, aber was hat das mit dem Thema zu tun? :bahnhof:
American Standard Code for Information Interchange ? Wikipedia
Da kannst du die Ascii-Tabelle einsehen, woher deine komische Zuordnung kommt weiß ich auch nicht.


----------



## Gast2 (1. Apr 2011)

Es ist kein ASCII - PUNKT.

ASCII-Tabelle

Diese Zeichen von 00 bi 7F sind ASCII Zeichen. Alles andere ist kein ASCII sondern eine andere Zeichenkodierung, z.B. ISO-8859-1 oder Windows-1252

In welcher Kodierung es deine Symbole gibt und welchen Wert sie haben musst du dann suchen. Sieht mir doch sehr nach einem Windows Zeichen satz aus. (also irgendein Windows-XXXX).

Nochmal wichtig: Zeichenkodierung != Schriftart


----------



## tanzverfuehrung (1. Apr 2011)

erlich gesagt verwirrt ihr mich nur noch mehr aber trotzdem danke???:L;(


----------



## Gast2 (1. Apr 2011)

Noch mal langsam.

Die ASCII Zeichenkodierung beschreibt die Kodierung einer Zahl zu einem Zeichen. Sprich aus 0x48 wird 'H' und aus 0x71 wird 'q'. Das kannst du in der ASCII Tabelle nachschlagen.

ASCII definiert 128 Zeichen, von 0x00 bis 0x7F. Also soviel wie in ein byte gehn. Nicht mehr. Siehst du irgendwo in der Tabelle deine Smilies oder Dreiecke? Nein, das liegt daran das es vielleicht eine andere Zeichenkodierung gibt wo 0x4821 als '☺' und 0xA2E1 als '♫' definiert sind. Da aber 0x4821 nicht mehr ein Byte ist kann es schon mal kein ASCII sein. In der Regel sind die unteren 128 Zeichen von 0x00 bis 0x7F in jeder Kodierung immer gleich der ASCII Kodierung entsprechend kodiert. (Vorsicht: Gibt bestimmt auch da Ausnahmen). Da liegt es jetzt an dir rauszufinden von welcher Kodierung du ausgehst.

Möglichkeiten gibt es da viele:
UTF8, Windows-XXXX, ISO-XXXX-X usw. Das muss dir derjenige der dir die Aufgabe gestellt hat beantworten können oder zumindest einen Hinweis geben wo du das findest.

Klar soweit?


----------



## tanzverfuehrung (1. Apr 2011)

fassy hat gesagt.:


> Noch mal langsam.
> 
> Die ASCII Zeichenkodierung beschreibt die Kodierung einer Zahl zu einem Zeichen. Sprich aus 0x48 wird 'H' und aus 0x71 wird 'q'. Das kannst du in der ASCII Tabelle nachschlagen.
> 
> ...



Gesamtbersicht der bibliothekarischen Zeichenstze


das ist doch jetzt die richtige tabelle oder nicht?!:rtfm:???:L:toll:

Zeichentabelle CP850 (DOS Latin 1)

hier ist auch nochwas....

aber wie binde ich das jetzt in mein programm ein?!
???:L???:L:autsch:


----------

