2

16 進値を使用して拡張 ASCII 文字 (IBMコード ページ 437の文字に似ている) を表す印刷形式ページがあります。このを参考にしています。私はフォーマットページについて何も言えないので、これを変更することはできません.

この印刷形式ページは、私の Android アプリケーションで使用され、プリンターに送信されたときに関連データを適切な場所に配置します。最終結果は請求書のようになります。

Java での特定の ASCII 文字の表現に問題があります。たとえば、上の表の文字 201、205、および 187 です。この順序で組み合わせると、データ テーブルの素敵な境界線になります。

Java では、次のように 16 進数から ASCII に変換しようとしています。

String hex = "D5"; //this is just for example
int n = Integer.parseInt(hex, 16); //this should return a value of 213
char c = (char)n;

「c」は、私が意図したものではない奇抜な文字になってしまいます。JavaがWindows-1252/CP-1252標準を使用しているためだと今では気づきました。

解決策は、2 桁の 16 進数値を対応する Unicode 値に変換することだと思いますが、その方法がわかりません。どんな助けでも大歓迎です。

4

2 に答える 2

0

なぜあなたは余分な距離を行きたいのですか?

private static final char TOP_LEFT = '╔';
private static final char HORIZONTAL = '═';
private static final char TOP_RIGHT = '╗';

そして、これらを使用してください...ただし、フォントが異なると、これらの表現が異なる場合があることに注意してください...

于 2013-10-07T19:20:39.550 に答える
0

受信しているデータに適した Charset を使用して、byte[] および Charset 引数を取るString コンストラクターを使用できるようです(「IBM437」)。

于 2013-10-07T20:21:46.057 に答える