public static detectEncodingByBOMFromBuffer()

in desktop/src/@batch-flask/utils/encoding/encoding.ts [99:129]


    public static detectEncodingByBOMFromBuffer(buffer: any, bytesRead: number): Encoding | null {
        if (!buffer || bytesRead < 2) {
            return null;
        }

        const b0 = buffer.readUInt8(0);
        const b1 = buffer.readUInt8(1);

        // UTF-16 BE
        if (b0 === 0xFE && b1 === 0xFF) {
            return Encoding.UTF16be;
        }

        // UTF-16 LE
        if (b0 === 0xFF && b1 === 0xFE) {
            return Encoding.UTF16le;
        }

        if (bytesRead < 3) {
            return null;
        }

        const b2 = buffer.readUInt8(2);

        // UTF-8
        if (b0 === 0xEF && b1 === 0xBB && b2 === 0xBF) {
            return Encoding.UTF8;
        }

        return null;
    }