repurpose CharacterSetECI as encoding abstraction

This commit is contained in:
Henry Schimke
2023-03-02 15:50:56 -06:00
parent c4fec7d2ee
commit a0b8b68869
29 changed files with 304 additions and 337 deletions

View File

@@ -20,7 +20,7 @@ use regex::Regex;
use once_cell::sync::Lazy;
use crate::RXingResult;
use crate::{RXingResult, common::CharacterSetECI};
use uriparse::URI;
@@ -404,9 +404,9 @@ fn maybeAppendFragment(fragmentBuffer: &mut Vec<u8>, charset: &str, result: &mut
if charset.is_empty() {
fragment = String::from_utf8(fragmentBytes).unwrap_or_else(|_| String::default());
// fragment = new String(fragmentBytes, StandardCharsets.UTF_8);
} else if let Some(enc) = encoding::label::encoding_from_whatwg_label(charset) {
} else if let Some(enc) = CharacterSetECI::getCharacterSetECIByName(charset) {
fragment = if let Ok(encoded_result) =
enc.decode(&fragmentBytes, encoding::DecoderTrap::Strict)
enc.decode(&fragmentBytes)
{
encoded_result
} else {