fixBuffer : function()

in parsers/LU/JS/packages/lu/src/parser/utils/helpers.js [177:204]


    fixBuffer : function(fileBuffer) {
        if (fileBuffer) {
          // If the data starts with BOM, we know it is UTF
          if (fileBuffer[0] === 0xEF && fileBuffer[1] === 0xBB && fileBuffer[2] === 0xBF) {
            // EF BB BF  UTF-8 with BOM
            fileBuffer = fileBuffer.slice(3)
          } else if (fileBuffer[0] === 0xFF && fileBuffer[1] === 0xFE && fileBuffer[2] === 0x00 && fileBuffer[3] === 0x00) {
            // FF FE 00 00  UTF-32, little-endian BOM
            fileBuffer = fileBuffer.slice(4)
          } else if (fileBuffer[0] === 0x00 && fileBuffer[1] === 0x00 && fileBuffer[2] === 0xFE && fileBuffer[3] === 0xFF) {
            // 00 00 FE FF  UTF-32, big-endian BOM
            fileBuffer = fileBuffer.slice(4)
          } else if (fileBuffer[0] === 0xFE && fileBuffer[1] === 0xFF && fileBuffer[2] === 0x00 && fileBuffer[3] === 0x00) {
            // FE FF 00 00  UCS-4, unusual octet order BOM (3412)
            fileBuffer = fileBuffer.slice(4)
          } else if (fileBuffer[0] === 0x00 && fileBuffer[1] === 0x00 && fileBuffer[2] === 0xFF && fileBuffer[3] === 0xFE) {
            // 00 00 FF FE  UCS-4, unusual octet order BOM (2143)
            fileBuffer = fileBuffer.slice(4)
          } else if (fileBuffer[0] === 0xFF && fileBuffer[1] === 0xFE) {
            // FF FE  UTF-16, little endian BOM
            fileBuffer = fileBuffer.slice(2)
          } else if (fileBuffer[0] === 0xFE && fileBuffer[1] === 0xFF) {
            // FE FF  UTF-16, big endian BOM
            fileBuffer = fileBuffer.slice(2)
          }
        }
        return fileBuffer.toString('utf8').replace(/\0/g, '');
      }