mirror of
https://github.com/starovoid/rxing.git
synced 2026-07-26 04:12:34 +00:00
fix issue encoding qrcode digit only data
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "rxing"
|
name = "rxing"
|
||||||
version = "0.2.7"
|
version = "0.2.8"
|
||||||
description="A rust port of the zxing barcode library."
|
description="A rust port of the zxing barcode library."
|
||||||
license="Apache-2.0"
|
license="Apache-2.0"
|
||||||
repository="https://github.com/hschimke/rxing"
|
repository="https://github.com/hschimke/rxing"
|
||||||
|
|||||||
@@ -71,6 +71,17 @@ fn testGetAlphanumericCode() {
|
|||||||
assert_eq!(-1, encoder::getAlphanumericCode(b'\0' as u32));
|
assert_eq!(-1, encoder::getAlphanumericCode(b'\0' as u32));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_digits_only() {
|
||||||
|
let test_data = "374833744734397449";
|
||||||
|
let data = encoder::encode(test_data, ErrorCorrectionLevel::H).expect("encode");
|
||||||
|
let decode = crate::qrcode::decoder::decoder::decode_bitmatrix(
|
||||||
|
&data.getMatrix().as_ref().unwrap().clone().into(),
|
||||||
|
)
|
||||||
|
.expect("decode");
|
||||||
|
assert_eq!(test_data, decode.getText());
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn testChooseMode() {
|
fn testChooseMode() {
|
||||||
// Numeric Mode::
|
// Numeric Mode::
|
||||||
|
|||||||
@@ -732,7 +732,7 @@ pub fn appendNumericBytes(content: &str, bits: &mut BitArray) -> Result<(), Exce
|
|||||||
// Encode three numeric letters in ten bits.
|
// Encode three numeric letters in ten bits.
|
||||||
let num2 = content.chars().nth(i + 1).unwrap() as u8 - b'0';
|
let num2 = content.chars().nth(i + 1).unwrap() as u8 - b'0';
|
||||||
let num3 = content.chars().nth(i + 2).unwrap() as u8 - b'0';
|
let num3 = content.chars().nth(i + 2).unwrap() as u8 - b'0';
|
||||||
bits.appendBits((num1 * 100 + num2 * 10 + num3) as u32, 10)?;
|
bits.appendBits(num1 as u32 * 100 + num2 as u32 * 10 + num3 as u32, 10)?;
|
||||||
i += 3;
|
i += 3;
|
||||||
} else if i + 1 < length {
|
} else if i + 1 < length {
|
||||||
// Encode two numeric letters in seven bits.
|
// Encode two numeric letters in seven bits.
|
||||||
|
|||||||
Reference in New Issue
Block a user