A 回答 (6件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
じゃあ、ヒントだけ。
16進数を、数値に変換するのは[ Integer#parseInt ]を使います。
バイト配列を、文字コードをしていしてStringにするには、Stringのコンストラクタを使います。
Javadocとにらめっこしてみて下さい。
考え方さえ分かれば、すぐに解けるはずです。
この回答への補足
16進数の文字コードを10進数に変換することは出来ました。
これを文字にエンコードするためにバイト配列にしなくてはいけませんよね? この方法がよくわかりません。
以下のようにやってみたのですが、うまくいきませんでした。
何かヒントをいただけないでしょうか?
よろしくお願いします。
byte[] unibuf = new byte[2];
byte lower = (byte) (10進数のlong型);
byte upper = (byte) (10進数のlong型);
unibuf[0] = (byte)upper ;
unibuf[1] = (byte)lower ;
// 書き込む
os.print(new String(unibuf));
No.4
- 回答日時:
lowerとupperの値は何が入ってますか?
Stringのコンストラクタで文字コードを指定しない場合は、プラットフォームのデフォルト文字セットを使うので、
リトルエンディアンとして認識したいのであれば、その旨を指定します。
この回答への補足
現状以下のようにプログラムしているのですが、どうもうまく
行っていません。出力されたファイルをバイナリエディタで見ると
うまく"A7 00"と出力されているようなのですが。
やり方がおかしいのでしょうか?
ByteArrayOutputStream baos = new ByteArrayOutputStream();
String jnetcode = "00a7";
int high = Integer.parseInt(jnetcode.substring(0,2), 16);
int low = Integer.parseInt(jnetcode.substring(2,4), 16);
baos.write(high);
baos.write(low);
byte[] result = baos.toByteArray();
outStream.write(result[1]);
outStream.write(result[0]);
No.6
- 回答日時:
シフトJISコードで小さいカタカナのァは2バイトの0x007Aではなく1バイトの0xA7です。
よって入力データの上位バイトが0の場合は下位バイトのみを書きこむようにすればよいと思います。
以下がそのサンプルです。
import java.io.*;
public class charcode {
public static void main(String args[]) {
String s1[], s2[] = {"00a7", "00a8", "00a9", "00aa", "00ab", "82a0", "82a2", "82a4", "82a6", "82a8"};
int d[], i;
try {
s1 = args[0].split(",");
d = new int[s1.length];
for (i = 0; i < s1.length; i ++) d[i] = Integer.parseInt(s1[i], 16);
} catch (Exception e) {
d = new int[s2.length];
for (i = 0; i < s2.length; i ++) d[i] = Integer.parseInt(s2[i], 16);
};
try {
FileOutputStream FOS = new FileOutputStream("test.txt");
for (i = 0; i < d.length; i ++) {
if (d[i] < 0x100) FOS.write(d[i]);
else {
FOS.write((d[i] & 0xFF00) / 0x100);
FOS.write(d[i] & 0xFF);
};
};
FOS.close();
} catch (Exception e) { System.out.println(e.toString()); };
};
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- C言語・C++・C# 至急お願いします。C言語で.imgのファイルを読み込んで1バイトづつ出力するプログラムを作りたいので 3 2023/01/16 22:49
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- Excel(エクセル) 【VBA】PDF出力に任意のファイル名前を付ける方法 3 2023/07/21 10:55
- Java Javaの問題なのですが、「3文字以上の英数字文字列を入力し、文字列の中に文字(9)が出てくるまでの 1 2023/06/06 18:55
- Visual Basic(VBA) ファイル名の右側を変更したい ファイル名:「1001日別売上」の左側へ「2022」を追加し、「202 6 2022/10/14 10:03
- その他(プログラミング・Web制作) 文字コード及びフォントに関する次の記述を読み,適切なものをすべて選べ。 ASCIIとは,英数字だけを 4 2023/01/11 19:10
- 画像編集・動画編集・音楽編集 inkscapeで作成した図の保存の仕方とその保存したファイルの編集の仕方 1 2022/09/22 09:33
- HTML・CSS docxをmht形式で保存したファイルをedgeで開くと文字化けする 1 2022/07/29 13:14
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
10Mバイトて文字数に すると何...
-
UTF-8で5~6バイトになる文字コ...
-
COBOLのCOMP形式について
-
エクセルシート名の制限を変更...
-
ビットスワップとバイトスワッ...
-
バイナリとBCDコード
-
memcmp バイナリデータの比較方法
-
char str[256]の256の意味は?
-
Javaで日本語1文字のバイト数
-
機種依存文字をチェックしたい。
-
3バイト文字(UTF-8)をprintfで...
-
unicode←→JISコード
-
ビットからバイトへの変換
-
2byte文字の判定
-
[VBScript][wsh]byte単位でのデ...
-
varchar(M)のMは文字数ですかバ...
-
バイト列とバイナリ列の違いが...
-
【VB】文字列を50バイトづつに...
-
ソケット通信の受信サイズ
-
0.5バイトづつ読み込みたいので...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
10Mバイトて文字数に すると何...
-
UTF-8で5~6バイトになる文字コ...
-
char str[256]の256の意味は?
-
エクセルシート名の制限を変更...
-
COBOLのCOMP形式について
-
バイナリとBCDコード
-
バイト列とバイナリ列の違いが...
-
ビットスワップとバイトスワッ...
-
ピクセル,dpiから容量(バイト...
-
SQLで1バイト、2バイト混在...
-
Javaで日本語1文字のバイト数
-
「1TB」のHDDに日本語は何字入...
-
機種依存文字をチェックしたい。
-
VBAでShift-JISのURLエンコード
-
GetWindowTextでアドレスバーか...
-
COBOL PICTUREで X,S,Vの意味
-
【VB2005】テキストボックス内...
-
URLは最高何文字まで可能なので...
-
1KBが1024byteな理由
-
ワイド文字のバイト数が取得で...
おすすめ情報