O que é -1 e -2 mostrado pelo IntelliJ Debugger em uma string UTF8 e como removê-lo? [duplicado]

Dec 08 2020

Ao analisar minha string de um arquivo no Windows 10, eu meio que tenho dois caracteres que não são removíveis por recortes de espaços em branco e outros.

Aqui está a evidência do culpado.

Isso confunde um pouco meu regex ^(\w+)porque acontece que há um espaço em branco nele. Quando copio o valor da string (captura de tela) para RegExr, por exemplo, vejo que há um espaço em branco adicionado - e é por isso que meu regex funcionará em rede.

Já pesquisei -1 -2 in UTF-8 stringmas não consegui encontrar nada e por isso estou super confuso com isso.

Respostas

2 Blindy Dec 08 2020 at 02:09

Seu depurador está sendo bobo por mostrá-los como -1 e -2 respectivamente, mas é claro o suficiente que você está lidando com o BOM UTF-16 (não UTF-8 como você afirma na pergunta, esse é um BOM de 3 bytes marcador que é completamente diferente).

Sinta-se à vontade para verificar a presença deles e removê-los se os encontrar no início de um arquivo, embora o ideal seja salvar o arquivo sem o BOM em primeiro lugar.