Что означает -1 и -2, отображаемые отладчиком IntelliJ в строке UTF8, и как это удалить? [дубликат]

Dec 08 2020

При синтаксическом разборе моей строки из файла в Windows 10 у меня как бы есть два символа, которые нельзя удалить с помощью обрезки пробелов и т. Д.

Вот доказательства виновника.

Это несколько портит мое регулярное выражение, ^(\w+)потому что бывает, что в нем есть пробел. Когда я копирую значение строки (снимок экрана) в RegExr, например, я вижу, что добавлен пробел - и именно поэтому мое регулярное выражение будет работать в сети.

Я уже искал в Google, -1 -2 in UTF-8 stringно не смог ничего найти и поэтому очень смущен этим.

Ответы

2 Blindy Dec 08 2020 at 02:09

Ваш отладчик глупо показывает их как -1 и -2 соответственно, но достаточно ясно, что вы имеете дело с спецификацией UTF-16 (а не с UTF-8, как вы утверждаете в вопросе, это 3-байтовый маркер это совсем другое).

Не стесняйтесь проверять их наличие и удалять их, если вы встретите их в начале файла, хотя в идеале вы должны сохранить свой файл без спецификации в первую очередь.