diff --git a/extension/android/jni/jni_layer_llama.cpp b/extension/android/jni/jni_layer_llama.cpp index 1049b9da308..96097311d85 100644 --- a/extension/android/jni/jni_layer_llama.cpp +++ b/extension/android/jni/jni_layer_llama.cpp @@ -42,13 +42,13 @@ bool utf8_check_validity(const char* str, size_t length) { uint8_t next_byte = static_cast(str[i + 1]); if ((byte & 0xE0) == 0xC0 && (next_byte & 0xC0) == 0x80) { // 2-byte sequence - i += 2; + i += 1; } else if ( (byte & 0xF0) == 0xE0 && (next_byte & 0xC0) == 0x80 && (i + 2 < length) && (static_cast(str[i + 2]) & 0xC0) == 0x80) { // 3-byte sequence - i += 3; + i += 2; } else if ( (byte & 0xF8) == 0xF0 && (next_byte & 0xC0) == 0x80 && (i + 2 < length) && @@ -56,7 +56,7 @@ bool utf8_check_validity(const char* str, size_t length) { (i + 3 < length) && (static_cast(str[i + 3]) & 0xC0) == 0x80) { // 4-byte sequence - i += 4; + i += 3; } else { return false; // Invalid sequence }