Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Semrush - keyword research tool

Turn ChatGPT, Claude, Gemini, And CoPilot Into Your Personal Assistant, Business Coach, Content Creator, And More

AFFILIATE MARKETING Your all-in-one performance engine Manage affiliates, creators, and customer referrals in one unified platform—turning every partnership into measurable growth
Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

42,685 questions

55,437 answers

573 users

How to check if an array of bytes is a valid UTF-8 string in Kotlin

1 Answer

0 votes
import java.nio.ByteBuffer
import java.nio.charset.Charset
import java.nio.charset.CodingErrorAction

fun isValidUTF8(data: ByteArray): Boolean {
    val decoder = Charset.forName("UTF-8")
        .newDecoder()
        .onMalformedInput(CodingErrorAction.REPORT)
        .onUnmappableCharacter(CodingErrorAction.REPORT)

    return try {
        decoder.decode(ByteBuffer.wrap(data))
        true
    } catch (e: Exception) {
        false
    }
}

fun main() {
    val arr1 = "Hello, 世界".toByteArray(Charsets.UTF_8)
    val arr2 = byteArrayOf(0xa3.toByte(), 0xed.toByte(), 0xfd.toByte())

    println(if (isValidUTF8(arr1)) "true" else "false")
    println(if (isValidUTF8(arr2)) "true" else "false")
}

 
  
/*
run:
  
true
false

*/

 



answered Jul 8, 2025 by avibootz
...