| 159 | } |
| 160 | |
| 161 | private static _detectEncoding(data: Uint8Array): string | null { |
| 162 | if (data.length > 2 && data[0] === 0xfe && data[1] === 0xff) { |
| 163 | return 'utf-16be'; |
| 164 | } |
| 165 | if (data.length > 2 && data[0] === 0xff && data[1] === 0xfe) { |
| 166 | return 'utf-16le'; |
| 167 | } |
| 168 | if (data.length > 4 && data[0] === 0x00 && data[1] === 0x00 && data[2] === 0xfe && data[3] === 0xff) { |
| 169 | return 'utf-32be'; |
| 170 | } |
| 171 | if (data.length > 4 && data[0] === 0xff && data[1] === 0xfe && data[2] === 0x00 && data[3] === 0x00) { |
| 172 | return 'utf-32le'; |
| 173 | } |
| 174 | return null; |
| 175 | } |
| 176 | |
| 177 | public static stringToBytes(str: string): Uint8Array { |
| 178 | const decoder: TextEncoder = new TextEncoder(); |