2017-11-13 2 views
0

Ich habe eine Anforderung zum Konvertieren von Java-Zeichenfolge in Code Seite 857. Ich sende diese Zeichenfolge an ein anderes System, das Byte für Byte die Zeichenfolge liest. Wenn diese Zeichenfolge irgendein türkisches Zeichen enthält, wird sie 2 Bytes verbrauchen. Der Client (Besitzer eines externen Systems) möchte, dass wir die Zeichenfolge in die Codepage 857 konvertieren (Standard zum Schreiben türkischer Zeichen unter DOS)Wie konvertiert man Java-Zeichenfolge in Code-Seite 857

Bitte teilen Sie uns mit, wenn mir jemand weiterhelfen kann dies Vielen Dank im Voraus Shaji

+0

Es ist nicht klar, was sp Genau das ist es, was du willst. Hast du eine Zeichenfolge in einem zufälligen Zeichensatz? Oder ist es bereits Cp857 und Sie müssen nur diese Tatsache signalisieren? Woher kommt diese Saite und wo ist der Verbraucher? –

+0

Hallo Prokhorov, Danke für Ihre Antwort. Grundsätzlich lese ich eine Zeichenfolge aus einer Datenbank und sende sie an ein externes System, das die Zeichenfolge Byte für Byte liest. Wenn ein türkisches Zeichen innerhalb der Zeichenfolge enthalten ist, belegt es 2 Byte statt 1 Byte. Alle anderen Zeichen belegen nur 1 Byte. Dies führt zu einem Fehler am externen System. Sie bitten mich also, die Codepage auf cp857 (türkisches Zeichen) zu setzen und dann die Zeichenfolge an sie zu senden. Hoffe, ich habe deine Frage beantwortet. –

Antwort

3

Intern stellt Java alle Zeichenfolgen als UTF-16. Daher kann ein String-Objekt selbst nicht in eine bestimmte Codepage konvertiert werden.

Sie können jedoch ein Byte-Array erhalten, die den String mit einem bestimmten Zeichensatz codiert:

String.getBytes(Charset charset) 

In Ihrem Fall sollten Sie verwenden:

byte[] stringAsByteArray=myString.getBytes(Charset.forName("Cp857")); 

zu here Laut, Cp857 sollte von Java unterstützt werden, aber Sie sollten dies mit

überprüfen
Charset.isSupported("Cp857"); 
+0

Danke Markus für deine Unterstützung. –

Verwandte Themen