convert method
Converts input
and returns the result of the conversion.
Implementation
@override
String convert(List<int> input) {
int leadPointer = 0;
StringBuffer sb = StringBuffer();
for (int i = 0; i < input.length; i++) {
int pointer = input[i];
if (leadPointer != 0) {
if (pointer >= 0x41 && pointer <= 0xfe) {
//int code = (leadPointer - 0x81) * 190 + (pointer - 0x41);
int code = (leadPointer << 8) + pointer;
final charCode = code < 0x80 ? code : eucKrToUtf8[code];
if (charCode == null && !_allowInvalid) {
throw FormatException('Unfinished Euc-KR octet sequence', input, i);
} else {
sb.writeCharCode(charCode ?? unicodeReplacementCharacterRune);
}
}
leadPointer = 0;
} else if (pointer < 0x80) {
sb.writeCharCode(pointer);
} else if (pointer >= 0x81 && pointer <= 0xfe) {
leadPointer = pointer;
} else {
if (!_allowInvalid) {
throw FormatException('Unfinished Euc-KR octet sequence', input, i);
}
sb.writeCharCode(unicodeReplacementCharacterRune);
}
}
if (leadPointer != 0) {
if (!_allowInvalid) {
throw FormatException(
'Unfinished Euc-KR octet sequence',
input,
leadPointer,
);
}
}
return sb.toString();
}