XXXXXXXX@XXXXXXXX wrote: zint QRコードに漢字を指定すると化けるようですので、 パッチを作成してみました。 ex. zint -b 58 -d '本日は晴天なり' zint-2.4.0-qr-kanji.patch diff -r 7f939ac02156 zint-2.4.0/backend/qr.c --- a/zint-2.4.0/backend/qr.c Sun Oct 31 18:59:11 2010 +0900 +++ b/zint-2.4.0/backend/qr.c Mon Nov 01 11:03:55 2010 +0900 @@ -221,14 +221,15 @@ /* Character representation */ for(i = 0; i < short_data_block_length; i++) { - int jis = jisdata[position + i]; - int msb, lsb, prod; - - if(jis > 0x9fff) { jis -= 0xc140; } - msb = (jis & 0xff00) >> 4; + unsigned int jis = jisdata[position + i]; + unsigned int msb, lsb, prod; + + msb = (jis & 0xff00) >> 8; lsb = (jis & 0xff); + + if (msb >= 0x81 && msb <= 0x9f) { msb -= 0x81; } else if (msb >= 0xe0 && msb <= 0xea) { msb -= 0xc1; } + if (lsb >= 0x40 && lsb <= 0xfc) { lsb -= 0x40; } prod = (msb * 0xc0) + lsb; - qr_bscan(binary, prod, 0x1000); if(debug) { printf("0x%4X ", prod); } @@ -1204,14 +1205,15 @@ /* Character representation */ for(i = 0; i < short_data_block_length; i++) { - int jis = jisdata[position + i]; - int msb, lsb, prod; - - if(jis > 0x9fff) { jis -= 0xc140; } - msb = (jis & 0xff00) >> 4; + unsigned int jis = jisdata[position + i]; + unsigned int msb, lsb, prod; + + msb = (jis & 0xff00) >> 8; lsb = (jis & 0xff); + + if (msb >= 0x81 && msb <= 0x9f) { msb -= 0x81; } else if (msb >= 0xe0 && msb <= 0xea) { msb -= 0xc1; } + if (lsb >= 0x40 && lsb <= 0xfc) { lsb -= 0x40; } prod = (msb * 0xc0) + lsb; - qr_bscan(binary, prod, 0x1000); if(debug) { printf("0x%4X ", prod); } == このレポートの詳細は以下の通りです == レポート ID : 1062 レポート URL : http://bts.vinelinux.org/guest.cgi?project=VineLinux&action=view_report&id=1062 分類 : バグ バージョン : VineSeed 関連パッケージ : zint-2.4.0-1vl6 状態 : 新規 優先度 : 中 重大度 : 普通 担当者 : 未定 # あなたが、このようなメッセージに無関係である場合には、 # 管理者 <Vine@xxxxxxxxxxxxx> までご連絡ください。 -- Bug Tracking System 影舞 0.8.8. http://www.daifukuya.com/kagemai/