I byte esadecimali non sono punti di codice Unicode
L'esadecimale è un modo compatto per mostrare i byte. Due cifre esadecimali rappresentano un byte, da 00 a FF. Una semplice lettera latina occupa spesso un byte in UTF-8, e per questo un breve esempio sembra una sostituzione carattere per carattere. Questa scorciatoia smette di funzionare per buona parte dei testi che le persone scrivono davvero. Una lettera accentata può richiedere due byte; un'emoji può richiederne quattro o formare una sequenza più lunga.
Il punto di codice U+00E9 identifica il carattere é. I suoi byte UTF-8 sono C3 A9, non E9. Fornire il singolo byte E9 a un decodificatore UTF-8 rigoroso è quindi un errore, anche se l'esadecimale in sé è valido. Se un log è stato prodotto con una codifica legacy, stabilisci quella codifica alla fonte invece di tirare a indovinare finché l'output non sembra plausibile.
Questo convertitore controlla la sintassi esadecimale prima di tentare la decodifica dei caratteri. Una sequenza compatta come 4869 è accettata. Lo sono anche gruppi completi come 48 69, 48:69 e 0x48,0x69. Un numero dispari di cifre in un gruppo viene rifiutato. Le colonne di indirizzi, le stringhe con escape dei linguaggi di programmazione e la colonna stampabile laterale di un hexdump completo non sono gestite da questo parser: incolla solo i dati dei byte.
Tieni separati i compiti numerici e quelli testuali. L'esadecimale FF rappresenta l'intero 255, ma non è un byte di testo UTF-8 valido da solo. Usa il convertitore di basi numeriche per calcolare quel valore e questo strumento quando i byte codificano un messaggio. Il testo ottenuto può proseguire negli strumenti per documenti già esistenti. I caratteri NULL restano nei download, anche se il passaggio al flusso documentale li rifiuta.