论坛: Japanese (Thread #11378)

8Bitバイナリモードに日本語を埋め込みたい (2006-06-08 01:57 by matsuyama #22839)

松山と申します。

現在、QRコードを使ったアプリケーションを開発中で、
ここで公開されているQRコードライブラリを使用させて頂きたいと考えています。
8Bitバイナリモードとして、日本語(Shift_JIS)で生成されたQRコードをデコードしたいと思っています。

そのため、qrcode 0.5の
jp.sourceforge.qrcode.codec.reader.QRCodeDataBlockReaderクラスにある、String get8bitByteString(int)メッソドを下記のように修正しました。
=====================================
String get8bitByteString(int dataLength) throws ArrayIndexOutOfBoundsException {
return(get8bitByteString2(dataLength));
/*
:
:
*/
}
final private String get8bitByteString2(int dataLength) throws ArrayIndexOutOfBoundsException {
int length = dataLength;
int intData = 0;
byte[] data = new byte[dataLength];
String strData = "";
for(int i = 0; i < length; i++) {
intData = getNextBits(8);
data[i] = (byte)intData;
}
strData = new String(data, "Shift_JIS");
return strData;
}
================================================

この対応で、8Bitバイナリモードに埋め込まれた
日本語文字列を取得することができました。

さて、このようなに修正したモジュールを
オリジナルソース、および上記の改変を加えたソースを込みで再配布することは可能でしょうか?

また、現在、公開されているものは、ソースファイルのみですが、jarファイルにアーカイブして再配布することは可能でしょうか?

大変、ぶしつけではありますが、
よろしくお願いします。

回复到 #22839×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) 登录

RE: 8Bitバイナリモードに日本語を埋め込みたい (2006-06-08 08:48 by yanbe #22842)

こんにちは、本プロジェクト管理者の山家と申します。
本プロジェクトに興味を持っていただきありがとうございます。

まず、質問への回答ですが、松山様がご提示の条件での再配布は(GPLライセンスの範囲内ですので)もちろん可能です。どうぞご利用ください。

ところで修正済みのコードを拝見したのですが、なるほど、エンコーダ側が漢字等を(漢字モードではなく)8Bitバイナリモードでエンコードしていた場合に対応するための修正ですね。

このあたりの処理はまだ改良の余地がありそうなので、副作用が無いか確認の上、次回のリリースの修正に含めることを検討したいと思います。
回复到 #22839

回复到 #22842×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) 登录

RE2: 8Bitバイナリモードに日本語を埋め込みたい (2006-10-21 12:36 by yanbe #25547)

Version 0.6から8ビットバイナリモードでエンコードされた日本語文字列に対応しました。

具体的には、ソースを見ていただければ分かると思いますが、デコード済みのbyte配列を返すようになっています。

これを適当な文字コードでデコードしてやれば元の文字列がデコードできるはずです。他の報告によると、中国語(Big5など)もデコードできたそうです。
回复到 #22842

回复到 #25547×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) 登录