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

1 Answer

0 votes
const { TextEncoder, TextDecoder } = require('util');

function isValidUTF8(data) {
    try {
        new TextDecoder('utf-8', { fatal: true }).decode(data);
        return true;
    } catch {
        return false;
    }
}

const arr1 = new TextEncoder().encode("Hello, 世界");
const arr2 = Buffer.from([0xa3, 0xed, 0xfd]);

console.log(isValidUTF8(arr1) ? "true" : "false");
console.log(isValidUTF8(arr2) ? "true" : "false");




/*
run:

true
false

*/

 



answered Jul 8 by avibootz
...