Apa -1 & -2 yang ditunjukkan oleh IntelliJ Debugger dalam string UTF8 dan bagaimana cara menghapusnya? [duplikat]

Dec 08 2020

Saat mem-parsing string saya dari file di Windows 10, saya memiliki dua karakter yang tidak dapat dilepas oleh trim spasi putih dan semacamnya.

Inilah bukti pelakunya.

Ini agak mengacaukan regex saya ^(\w+)karena kebetulan ada spasi di dalamnya. Ketika saya menyalin nilai string (screenshot) ke dalam RegExr misalnya, saya melihat ada spasi yang ditambahkan - dan itulah mengapa regex saya akan berfungsi dengan baik.

Saya sudah mencari di Google -1 -2 in UTF-8 stringtetapi tidak dapat menemukan apa pun dan oleh karena itu saya sangat bingung dengan itu.

Jawaban

2 Blindy Dec 08 2020 at 02:09

Debugger Anda konyol karena menunjukkan masing-masing sebagai -1 dan -2, tetapi cukup jelas bahwa Anda berurusan dengan UTF-16 BOM (bukan UTF-8 seperti yang Anda klaim dalam pertanyaan, yang satu adalah 3-byte penanda yang sama sekali berbeda).

Jangan ragu untuk memeriksa keberadaan mereka dan menghapusnya jika Anda menemukannya di awal file, meskipun idealnya Anda harus menyimpan file Anda tanpa BOM di tempat pertama.