PasteCleanly / Guide

Diagnosticare accenti rotti e caratteri invisibili

Accenti rotti, segni invisibili e forme Unicode diverse possono sembrare lo stesso problema. Richiedono rimedi diversi.

In questa guida

Classificare il sintomo prima di modificare il testo

Ci sono tre motivi comuni per cui un'etichetta incollata non si comporta come sembra. I caratteri storpiati si vedono: un nome che dovrebbe contenere un accento può contenere una breve sequenza di lettere e simboli inattesi. I caratteri invisibili ci sono ma non si notano: un segno a larghezza zero può trovarsi tra le lettere, oppure uno spazio non separabile può sembrare uno spazio normale. Le differenze di rappresentazione Unicode sono più sottili: una lettera accentata può essere salvata come un solo punto di codice oppure come una lettera base seguita da un segno combinato.

Questi problemi richiedono strumenti diversi. Riparare la codifica non rimuove i segni a larghezza zero. Sostituire gli spazi non compone un carattere accentato. Normalizzare Unicode non annulla una decodifica sbagliata dei byte. Parti da una copia breve del testo sospetto e da una versione che sai essere corretta. Conservale entrambe finché il risultato non funziona nell'app in cui si era presentato il problema. L'obiettivo è un valore verificato, non solo uno che nell'anteprima sembri in ordine.

Apri l'ispettore dei caratteri invisibili

Sfruttare l'indizio visivo evidente per gli accenti storpiati

Quando al posto di caffè vedi qualcosa come caffè, la sequenza è un indizio utile. I byte scritti originariamente in UTF-8 possono essere stati letti con un'interpretazione Windows-1252. I caratteri risultanti sono testo valido, ma rappresentano la decodifica sbagliata della fonte. Lo stesso errore può colpire la punteggiatura: l’ora può essere la forma letta male di l’ora.

Prova un breve esempio in Ripara gli accenti rotti. Confronta ogni modifica proposta con l'ortografia attesa o con una fonte affidabile. L'anteprima tenta di invertire una specifica famiglia di conversioni errate; non rileva né traduce ogni possibile codifica. Se una sequenza è stata modificata più volte, un solo passaggio potrebbe non bastare a ripristinarla. Prova prima un passaggio. Eseguine un altro solo se il risultato mostra ancora uno schema riconoscibile e puoi verificare il testo atteso. Non applicare la riparazione solo perché un nome contiene una lettera che non riconosci.

Riconoscere le informazioni perse invece di tirare a indovinare

Il carattere di sostituzione � segnala spesso che un decodificatore non è riuscito a interpretare alcuni byte. Quando una copia contiene solo quel carattere di sostituzione, i byte mancanti non sono presenti nel testo che hai incollato. Anche un punto interrogativo può essere stato inserito da un'esportazione precedente, anche se può essere semplice punteggiatura. In entrambi i casi, tirare a indovinare partendo da un nome o da una frase non equivale a recuperare la fonte.

Cerca il file originale, una nuova esportazione o un'altra copia fatta prima dell'errore di decodifica. Se controlli l'esportazione, scegli lì la codifica voluta e apri il risultato con la stessa codifica. Confronta un piccolo insieme di nomi accentati e di punteggiatura tipografica prima di sostituire un elenco intero. Se la fonte non si può recuperare, conserva la copia non modificata e documenta ogni correzione manuale. Questo è particolarmente importante per nomi, identificatori e citazioni. Codificare e decodificare ripetutamente il testo danneggiato non ricostruirà byte che sono stati scartati in un passaggio precedente.

Trovare un segno invisibile dal suo codice e dalla sua posizione

Quando due etichette sembrano uguali ma ne corrisponde solo una, incolla l'etichetta sospetta nell'ispettore. Attiva Mostra i marcatori nel risultato e apri il rapporto sui caratteri. In un valore come Fattura[NBSP]042, il marcatore tra parentesi quadre rappresenta uno spazio non separabile. Il rapporto include il codice Unicode, un conteggio e la prima posizione di ogni segno riconosciuto. Confronta quella posizione con il testo originale per capire se il segno sta tra due parole o dentro un identificatore.

I marcatori sono solo una visualizzazione diagnostica. Non sono i caratteri che erano nel testo e non vanno incollati in una destinazione che si aspetta il valore originale. Dopo aver deciso che cosa mantenere, disattiva i marcatori per copiare un risultato pulito. Se compaiono più tipi di segni, prova un'opzione di pulizia alla volta. Così è chiaro se una differenza veniva dalla spaziatura, da un trattino facoltativo o da un carattere che volevi conservare.

Ispeziona i punti di codice dell'etichetta incollata

Distinguere gli spazi dai controlli di formattazione nascosti

Uno spazio non separabile può essere del tutto appropriato in un'etichetta visualizzata, come un numero seguito dalla sua unità. Tiene insieme i pezzi collegati quando la riga va a capo. Uno spazio sottile può far parte di una convenzione tipografica. Una tabulazione può essere un separatore di campi e non un vuoto da ridurre. Controlla che cosa si aspetta la destinazione prima di considerare un difetto ogni spazio non standard.

L'ispettore può sostituire alcuni spazi non separabili con spazi normali. Può essere utile quando incolli in un sistema che confronta alla lettera i valori delle etichette. Non va usato in automatico su una tipografia in cui il comportamento dell'a capo è voluto. Se copi righe di un foglio di calcolo separate da tabulazioni, mantieni le tabulazioni e usa il convertitore CSV e TSV quando ti serve un separatore diverso. Non usare la pulizia degli spazi per convertire una tabella. Ridurre due campi separati da tabulazione a un solo vuoto cambia la struttura anche se la riga incollata sembra ancora leggibile.

Trattare unitori e segni direzionali come significativi finché non li hai verificati

Alcuni segni influenzano il modo in cui i caratteri si combinano o vengono visualizzati. Un unitore a larghezza zero può far parte di una sequenza di emoji o essere importante per un sistema di scrittura. Un segno direzionale può influenzare l'ordine in cui appare il testo con direzioni miste. Il rapporto è utile perché distingue questi controlli da uno spazio a larghezza zero. La loro sola presenza non significa che il segno sia indesiderato.

L'opzione di pulizia mirata di PasteCleanly per gli spazi a larghezza zero, i trattini morbidi e i caratteri BOM non rimuove gli unitori né i segni direzionali elencati nel suo rapporto. Questa distinzione conta quando copi nomi, messaggi con alfabeti misti o emoji. Se il problema si verifica solo in un'app, confronta ciò che quell'app riceve davvero. Evita una regola generica come “elimina ogni carattere non ASCII”: può togliere parte di un nome, spezzare una sequenza visibile o cambiare il comportamento di lettura di una frase. Verifica un esempio completo nella destinazione prima di applicare una modifica ampia a un intero lotto.

Controlla i segni invisibili senza modificare l'originale

Normalizzare gli accenti equivalenti quando le lettere sembrano corrette

Due stringhe accentate visivamente identiche possono usare sequenze diverse. Per esempio, una lettera accentata può essere salvata come un solo punto di codice oppure come una lettera base seguita da un accento combinato. Una visualizzazione può rendere i due casi allo stesso modo mentre un confronto alla lettera li considera diversi. È un caso adatto a Normalizza Unicode, non alla rimozione degli accenti. La normalizzazione mantiene l'accento cambiandone la rappresentazione.

Se il sistema ricevente lo consente, usa NFC sia sul riferimento sia sul valore incollato prima di confrontarli. NFC compone le sequenze canonicamente equivalenti dove esiste una forma composta. NFD segue l'approccio scomposto. Se la destinazione specifica una forma, scegli quella richiesta. Quando nessuno dei due strumenti segnala una modifica visibile, non è una prova che i punti di codice originali fossero identici. Controlla il confronto dopo aver applicato la stessa trasformazione a entrambi i lati, invece di fidarti di un'occhiata.

Usare le forme di compatibilità solo quando la distinzione si può perdere

NFKC e NFKD possono fare più che comporre o scomporre gli accenti equivalenti: possono anche unificare i caratteri di compatibilità. Una forma a larghezza piena, una legatura o un apice possono diventare una rappresentazione più ordinaria. Può essere utile quando la destinazione tratta esplicitamente quelle distinzioni come intercambiabili. Può anche cambiare ciò che vede chi legge oppure unire etichette che il documento originale distingue di proposito.

Prova un campione prima di normalizzare un'intera tabella o un catalogo. Includi voci con accenti, forme a larghezza piena, punteggiatura e codici che devono restare intatti. Se gli identificatori sono assegnati da un altro sistema, conserva i valori esatti di quel sistema finché non sai come gestisce la normalizzazione. Un'etichetta leggibile da persone si può spesso ripulire indipendentemente da un identificatore. Se il problema è soltanto nelle virgolette tipografiche o nel trattino lungo, usa un'opzione specifica per la punteggiatura invece di una forma di compatibilità. Le operazioni mirate sono più facili da spiegare e da annullare quando il risultato non è quello che volevi.

Le lettere Unicode decorative sono un altro caso a parte: possono essere leggibili ma non corrispondere alla parola normale in una ricerca. Se usa uno degli stili supportati, applica Ripristina le lettere normali a un breve estratto e confronta il risultato con l'ortografia voluta. Se il problema sono gli spazi normali ripetuti e non la rappresentazione dei caratteri, usa Pulisci gli spazi attivando solo l'opzione pertinente.

Distinguere i riferimenti a entità e le sequenze di escape degli URL dal mojibake

Un testo letterale come è è un riferimento a un carattere, non un accento storpiato. Decodificalo con il decodificatore di entità HTML quando la destinazione richiede la lettera visibile. Lo stesso vale per i riferimenti numerici. Questo cambia la rappresentazione del testo; non interpreta il markup incollato come una pagina. Se il risultato contiene ancora un altro riferimento, guardalo prima di decidere se eseguire un altro passaggio.

Un valore come Caff%C3%A8 è un esempio di codifica percentuale degli URL. Scegli invece il decodificatore dei componenti URL in Codifica Base64 e URL. Un più può significare un più letterale oppure uno spazio, a seconda del formato. Se non sei sicuro di quale rappresentazione hai davanti, confrontala con il modo in cui la fonte l'ha prodotta: un esempio HTML, un valore di query di un URL e un file di testo hanno regole diverse. Nessuna di queste operazioni ripara una selezione da cui il testo è già stato omesso o perso.

Ripetere la stessa preparazione su entrambi i lati di un confronto

Se un confronto deve ignorare una specifica differenza di rappresentazione, prepara entrambi i testi allo stesso modo. Ispeziona qualche etichetta problematica di ciascun elenco, decidi se gli spazi non separabili debbano diventare spazi normali e applica NFC quando conta l'equivalenza canonica. Poi incolla i due elenchi in Confronta liste. Non normalizzare un lato lasciando l'altro in una rappresentazione diversa, a meno che tu non voglia proprio provarne l'effetto.

Controlla il risultato prima di considerare un errore ogni discrepanza rimasta. Un valore può in realtà differire per la punteggiatura, per una cifra in più o per un'ortografia diversa. Uno strumento di rimozione dei duplicati dovrebbe mantenere distinti quei valori, a meno che il tuo caso d'uso non dica altrimenti. Se le regole di corrispondenza devono essere rigide, conserva le colonne originali e scrivi i valori normalizzati in nuove colonne nella destinazione. Così resta traccia di quali modifiche hanno reso possibile una corrispondenza e non si sostituisce in silenzio la forma ufficiale di un record.

Apri l'ispettore per un ultimo controllo del confronto

Tenere un piccolo insieme di prova e verificare la destinazione

Per un'importazione ricorrente, costruisci un breve insieme di prova con un accento corretto noto, un accento visibilmente danneggiato, uno spazio non separabile, un accento scomposto e una sequenza che usa volutamente un unitore. Annota il risultato atteso per ciascuno. Esegui la stessa serie di passaggi su questi esempi quando cambi la fonte, l'app di destinazione o un'opzione di pulizia. Controlla sia ciò che è cambiato sia ciò che è rimasto intatto.

Infine, incolla l'esempio pulito nella destinazione vera e ripeti la ricerca, il confronto o l'importazione di partenza. Un'anteprima può mostrare correttamente i caratteri senza provare che un'altra app li confronti allo stesso modo. Se continua a non funzionare, conserva i valori prima e dopo e controlla la codifica e le regole di corrispondenza attese dalla destinazione. Usa la correzione più piccola che faccia funzionare l'esempio documentato. Se un valore deve restare identico byte per byte, preferisci l'ispezione alla modifica e risolvi la discrepanza nel sistema che possiede quel valore.

Torna al rapporto sui caratteri Unicode

Confrontare lo stesso campione in due punti del flusso di lavoro

Quando lo stesso problema continua a tornare, cattura il testo subito prima e subito dopo il passaggio che lo modifica. Per esempio, confronta un nome francese nell'applicazione che possiede il record con lo stesso nome dopo aver scaricato e aperto un'esportazione. Poi confronta ciò che appare dopo averlo copiato nella destinazione. Il primo punto in cui le stringhe differiscono dice più di un'altra ipotesi sulla visualizzazione finale. Se puoi esportare un piccolo record con nomi inventati, usalo per indagare senza includere dati dei clienti.

Tieni il campione piccolo ma vario. Usa un carattere con un accento, un apostrofo tipografico e una parola senza segni speciali. Aggiungi un nome in un alfabeto non latino se il flusso li gestisce. Se cambia solo la lettera accentata, il problema potrebbe dipendere da un passaggio di conversione. Se gli accenti restano visivamente intatti ma la ricerca non li trova più, confronta i punti di codice effettivi: le versioni composte e scomposte possono sembrare identiche. Se ogni carattere speciale è diventato un punto interrogativo, i valori originali potrebbero non essere più recuperabili da quella copia.

Quando trovi il primo passaggio in cui compare la differenza, se controlli le impostazioni di esportazione o di importazione, correggile lì. Annota la codifica o la forma Unicode attesa accanto al campione. Una futura esportazione potrà così essere confrontata con lo stesso riferimento, invece di affidarsi a una riparazione manuale dopo ogni importazione.

Confronta i caratteri esatti prima e dopo