IntelliJ 디버거가 UTF8 문자열로 표시하는 -1 및 -2는 무엇이며 제거하는 방법은 무엇입니까? [복제]

Dec 08 2020

Windows 10의 파일에서 내 문자열을 구문 분석 할 때 공백 트림 등으로 제거 할 수없는 두 개의 문자가 있습니다.

범인의 증거가 있습니다.

^(\w+)공백이 있기 때문에 이것은 내 정규식을 다소 망칠 수 있습니다. 예를 들어 문자열 (스크린 샷)의 값을 RegExr에 복사하면 공백이 추가 된 것을 볼 수 있습니다. 이것이 바로 내 정규식이 제대로 작동하는 이유입니다.

나는 이미 검색 -1 -2 in UTF-8 string했지만 아무것도 찾을 수 없었기 때문에 그것과 매우 혼란 스럽습니다.

답변

2 Blindy Dec 08 2020 at 02:09

디버거는 각각 -1과 -2로 표시하는 것이 어리석지 만 UTF-16 BOM을 처리하고 있다는 것은 충분히 분명 합니다 (질문에서 주장하는대로 UTF-8이 아니라 3 바이트입니다. 완전히 다른 마커).

파일의 시작 부분에 해당 파일이 있는지 확인하고 제거 할 수 있지만 이상적으로는 처음에 BOM없이 파일을 저장해야합니다.