In questa guida
- Classificare il sintomo prima di modificare il testo
- Sfruttare l'indizio visivo evidente per gli accenti storpiati
- Riconoscere le informazioni perse invece di tirare a indovinare
- Trovare un segno invisibile dal suo codice e dalla sua posizione
- Distinguere gli spazi dai controlli di formattazione nascosti
- Trattare unitori e segni direzionali come significativi finché non li hai verificati
- Normalizzare gli accenti equivalenti quando le lettere sembrano corrette
- Usare le forme di compatibilità solo quando la distinzione si può perdere
- Distinguere i riferimenti a entità e le sequenze di escape degli URL dal mojibake
- Ripetere la stessa preparazione su entrambi i lati di un confronto
- Tenere un piccolo insieme di prova e verificare la destinazione
- Confrontare lo stesso campione in due punti del flusso di lavoro
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.
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.
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.
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.
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.
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.