Drucken mit Charset-Encoding CP437

A

Android-Torero

Neues Mitglied
0
Hallo zusammen,

aus der von mir erstellten App soll ein Beleg/Quittung gedruckt werden können. Dazu übergebe ich an den Bluetooth-Printer einen String in Form eines byte-Arrays. Das funktioniert soweit auch ganz ordentlich, d.h., die Druckausgabe an sich klappt.

Was allerdings nicht richtig funktioniert, ist, dass der Drucker die deutschen Sonderzeichen (Umlaute, "ß") falsch interpretiert.
Das liegt daran, dass der Drucker auf CodePage 437 eingestellt ist, Java dagegen auf UTF-16.
Alles Versuche, die Sonderzeichen zu konvertieren, sei es Maskieren als Unicode oder Benutzung eines CharsetEncoder etc. sind bislang gescheitert. Der Methode String.getBytes() das Charset "CP437" als Parameter mitgeben führt zu einer "UnsupportedCharsetException", weil dieses Charset nicht unterstützt wird.
Die Folge ist, der Drucker gibt alles andere nur nicht das gewünschte Sonderzeichen aus.

Hat jemand von euch Erfahrung darin, oder weiß einen Workaround, wie man den zu druckenden String bzw. byte-Array entsprechend konvertieren kann?

Danke und Grüße
Thorsten
 
java - Printing UTF-8 characters on bluetooth printer - Stack Overflow

Stackoverflow ist dafür vermutlich die bessere Anlaufstelle ;) Hier kommen ja gleich mehrere Variablen mit ins Spiel (Bluetooth, Java-Encoding, Drucker-Encoding)

Zumindest sagt eine kurze Suche bei SO, dass Drucker kein UTF können (so wie du auch sagst dein Drucker stehe auf "Codepage 437"). Jetzt wäre vll. eine Suche nach CodePage 437 und Java angebracht :)
 

Ähnliche Themen

B
Antworten
4
Aufrufe
509
bb321
B
FabianDev
Antworten
5
Aufrufe
575
swa00
swa00
MES
Antworten
10
Aufrufe
831
MES
MES
Zurück
Oben Unten