2017-11-13 7 views
0

コードページ857にJava文字列を変換する必要があります。この文字列を別のシステムに送信しています。このシステムはバイト単位で文字列を読み取ります。この文字列にトルコ文字が含まれていると、2バイトを消費します。したがって、クライアント(外部システム所有者)は、文字列をコードページ857(DOSオペレーティングシステムでトルコ語の文字を書き込むために使用される標準)に変換することを希望します。java文字列をコードページ857に変換する方法

私が助けてくれるかどうか教えてくださいこの ありがとうございます Shaji

+0

どのようなspそれはあなたが望むことです。あなたはランダムな文字セットで文字列を持っていますか?それとも、すでにCp857を持っていて、その事実を伝えるだけですか?この文字列はどこから来ていますか?消費者はどこですか? –

+0

こんにちはProkhorov、お返事ありがとうございます。基本的に私はデータベースから文字列を取り出し、文字列をバイト単位で読み取る外部システムに送ります。文字列の中にトルコ文字が含まれている場合は、1バイトではなく2バイトを占有します。その他の文字はすべて1バイトしか占めません。これにより、外部システムでエラーが発生します。だから彼らは私にコードページをcp857(トルコ語のchar)に設定し、文字列をそれらに送るように求めています。私はあなたの質問に答えました。 –

答えて

3

内部的には、Javaはすべての文字列をUTF-16として表します。したがって、Stringオブジェクト自体を特定のコードページに変換することはできません。 hereによると

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

、Cp857がすべき:

しかし、あなたが特定の文字セット使用して文字列をエンコードするバイト配列を取得することができますあなたの場合は

String.getBytes(Charset charset) 

を、あなたが使用する必要がありますJavaでサポートされていることを確認してください。

Charset.isSupported("Cp857"); 
+0

Markusに感謝します。 –

関連する問題