code: public function getBom($encoding = 'UTF-8')
      {
          $boms = array(
              'UTF-8'                => pack('CCC', 0xef, 0xbb, 0xbf),
              'UTF-16 Big Endian'    => pack('CC', 0xfe, 0xff),
              'UTF-16 Little Endian' => pack('CC', 0xff, 0xfe),
              'UTF-32 Big Endian'    => pack('CCCC', 0x00, 0x00, 0xfe, 0xff),
              'UTF-32 Little Endian' => pack('CCCC', 0xff, 0xfe, 0x00, 0x00),
              'SCSU'                 => pack('CCC', 0x0e, 0xfe, 0xff),
              'UTF-7 (1)'            => pack('CCCC', 0x2b, 0x2f, 0x76, 0x38),
              'UTF-7 (2)'            => pack('CCCC', 0x2b, 0x2f, 0x76, 0x39),
              'UTF-7 (3)'            => pack('CCCC', 0x2b, 0x2f, 0x76, 0x2b),
              'UTF-7 (4)'            => pack('CCCC', 0x2b, 0x2f, 0x76, 0x2f),
              'UTF-7 (5)'            => pack('CCCCC', 0x2b, 0x2f, 0x76, 0x38, 0x2d),
              'UTF-1'                => pack('CCC', 0xF7, 0x64, 0x4c),
              'UTF-EBCDIC'           => pack('CCCC', 0xdd, 0x73, 0x66, 0x73),
              'BOCU-1'               => pack('CCC', 0xfb, 0xee, 0x28),
              'GB-18030'             => pack('CCCC', 0x84, 0x31, 0x95, 0x33),
          );
  
          if ('all' == $encoding) {
              return $boms;
          }
          return $boms[$encoding];
      }
docs: Return a BOM string or an array of all BOM.
  @param string $encoding
  @return array|string