Quale codifica trasforma 测试 in 娴嬭瘯?
UTF-8 → GBK Byte UTF-8 letti come GBK. I sei byte UTF-8 (E6 B5 8B E8 AF 95) vengono riraggruppati in tre caratteri GBK.
Incolla il testo illeggibile e riottieni l'originale. Ogni catena di codifica plausibile — UTF-8, GBK, Big5, Shift_JIS, EUC-KR, Windows-1252 — viene provata e ordinata, con la catena esatta in chiaro. Gratis e tutto in locale.
Incolla il testo illeggibile. Viene provata ogni catena di codifica plausibile e i risultati vengono ordinati — non devi sapere quale codifica ha causato il problema.
测试
UTF-8 → GBK
娴å¬ç˜¯
Windows-1252 / Latin-1 → UTF-8
测试
Windows-1252 / Latin-1 → GBK
测试
Windows-1251 → GBK
Guarda lo stesso testo come byte in tutte le codifiche comuni in una volta sola — utile quando devi sapere esattamente che cosa memorizzerà il tuo database o il tuo protocollo.
| Codifica | Byte | Esadecimale |
|---|---|---|
| UTF-8 | 6 | E4 B8 AD E6 96 87 |
| GBK | 4 | D6 D0 CE C4 |
| GB18030 | 4 | D6 D0 CE C4 |
| Big5 | 4 | A4 A4 A4 E5 |
| Shift_JIS | 4 | 92 86 95 B6 |
| EUC-KR | 4 | F1 E9 D9 FE |
Realizzato e verificato dal team di ingegneria di Go Tools.
UTF-8 → GBK Byte UTF-8 letti come GBK. I sei byte UTF-8 (E6 B5 8B E8 AF 95) vengono riraggruppati in tre caratteri GBK.
UTF-8 → Windows-1252 Gli stessi byte UTF-8 letti come Windows-1252. Poiché quella codifica è a byte singolo, ciascuno dei sei byte diventa un carattere a sé.
Non recuperabile No. Quei byte sono stati scartati al momento della decodifica. Recupera quello che puoi dal testo circostante e per il resto torna alla sorgente.
3 byte contro 2 Tre in UTF-8, due in GBK e Big5. Quella differenza è una causa frequente di troncamento quando una colonna è dimensionata in byte anziché in caratteri.
Il mojibake è ciò che ottieni quando un testo viene scritto con una codifica di caratteri e letto con un'altra. I byte sono intatti; sbagliata è solo l'interpretazione. Questa distinzione è l'intera ragione per cui il recupero è possibile: se riesci a capire quale codifica ha scritto i byte e quale li ha letti male, puoi eseguire l'errore al contrario e riavere il testo originale.
La parola è giapponese — 文字化け, all'incirca «trasformazione dei caratteri» — ed è diventata il termine corrente anche in inglese perché il problema era endemico nell'informatica giapponese molto prima di Unicode. Il testo cinese, giapponese e coreano ne soffre assai più di quello a scrittura latina, per una ragione strutturale: quelle lingue hanno bisogno di codifiche multibyte, e le codifiche multibyte non sono d'accordo tra loro su come raggruppare i byte. Una stringa a scrittura latina è di solito puro ASCII, e sull'ASCII ogni codifica concorda.
Il recupero fallisce in una sola situazione. Quando un decoder incontra byte privi di significato nella sua codifica, non li conserva: li sostituisce con U+FFFD e li butta via. Quei caratteri sono persi in modo permanente. Tutto il resto è reversibile.
// The mistake, in three lines of JavaScript
const bytes = new TextEncoder().encode('测试'); // UTF-8: E6 B5 8B E8 AF 95
new TextDecoder('gbk').decode(bytes); // '娴嬭瘯' ← mojibake
new TextDecoder('windows-1252').decode(bytes); // '测试' ← same bytes, other mistake Incolla il testo illeggibile e lo strumento enumera le catene al posto tuo. Viene provata ogni combinazione fra scritto-come e letto-come tra UTF-8, GBK, GB18030, Big5, Shift_JIS, EUC-KR, Windows-1252 e Windows-1251.
Un candidato viene marcato Esatto solo quando ripercorrerlo lungo la stessa catena riproduce il tuo input carattere per carattere. È un controllo deterministico: una semplice classifica di ipotesi non ti direbbe di quali risultati puoi fidarti.
Ogni candidato nomina la codifica che ha scritto i byte e quella che li ha letti male. È ciò che ti serve per correggere la sorgente, invece di riparare le stesse stringhe di nuovo la settimana prossima.
Se l'input contiene già caratteri di sostituzione, lo strumento lo dice chiaramente e marca ogni candidato come parziale. L'informazione distrutta al momento della decodifica non torna indietro, e fingere il contrario ti fa buttare via un pomeriggio.
Guarda qualsiasi testo come byte esadecimali in tutte le codifiche supportate affiancate, e decodifica esadecimale grezzo nella direzione opposta. Utile per dimensionare colonne, leggere catture di pacchetti e controllare il contenuto dei BLOB.
La decodifica usa il TextDecoder del browser stesso. Non c'è upload, non c'è archiviazione e non c'è riscrittura dell'URL — e conta, perché il testo illeggibile arriva di solito dritto dalla produzione.
娴嬭瘯
测试
I due caratteri cinesi erano stati salvati correttamente in UTF-8 (byte E6 B5 8B E8 AF 95), poi un programma ha letto quei sei byte come GBK. GBK raggruppa i byte a due a due, quindi ne ha prodotti tre caratteri invece di due. È quello che ottieni quando un file UTF-8 viene aperto da un'applicazione Windows legacy, oppure quando il charset della connessione al database è impostato su gbk mentre i dati sono UTF-8.
测试
测试
Stessi byte, errore diverso. Windows-1252 è a byte singolo, quindi ciascuno dei sei byte UTF-8 è diventato un carattere a sé. Le lingue a scrittura latina incappano di continuo in questa variante: café diventa café, naïve diventa naïve. I segnali rivelatori sono Ã, Â, â e strani segni di punteggiatura che compaiono a coppie.
B2 E2 CA D4
测试
A volte non stai guardando testo illeggibile, ma un dump esadecimale preso da una cattura di pacchetti o da una colonna BLOB. Incolla l'esadecimale nella seconda sezione e scegli la codifica. B2 E2 CA D4 è 测试 in GBK — gli stessi due caratteri occupano sei byte in UTF-8 (E6 B5 8B E8 AF 95) e in Windows-1252 non sono rappresentabili affatto.
鏁版嵁搴�
(solo parziale)
数据库 era stato scritto in UTF-8 e letto come GBK, ma l'ultima coppia di byte non aveva significato in GBK, quindi il decoder l'ha sostituita con U+FFFD. Quel byte è perduto. Lo strumento lo segnala invece di tirare a indovinare in silenzio: puoi comunque recuperare 数据 dalla parte iniziale della stringa, ma l'ultimo carattere è irrecuperabile e devi tornare ai dati di origine.
Buttalo dentro così com'è: non serve identificare prima la codifica. Basta un frammento breve, una dozzina di caratteri di solito inchioda la catena.
Esatto significa che la catena ripercorsa a ritroso riproduce esattamente il tuo input. Parziale significa di no, quindi tratta il risultato come una pista.
Ogni candidato mostra con quale codifica il testo era davvero scritto e quale l'ha letto male. È questo a dirti che cosa correggere a monte, non solo che cosa diceva il testo.
La seconda sezione mostra qualsiasi testo come byte in tutte le codifiche comuni e decodifica esadecimale grezzo nella direzione opposta. Usala per dimensionare colonne o verificare trame di protocollo.
Se una stringa si visualizza correttamente e tu la converti comunque, crei proprio il mojibake che volevi evitare. Controlla prima la visualizzazione, e tieni presente che un font mancante si vede come quadratini (□□□) mentre un problema di codifica si vede come caratteri sbagliati.
iconv -f UTF-8 -t GBK correct.txt > broken.txt
# Conferma prima la codifica attuale file -I correct.txt # charset=utf-8 → niente da convertire
Cambiare il charset dichiarato di una colonna MySQL non ricodifica i byte che contiene. Dichiarare dati latin1 come utf8 fa sì che il server restituisca byte che non sono UTF-8 valido, e il driver li sostituisce con U+FFFD — il che li distrugge.
ALTER TABLE t MODIFY c VARCHAR(255) CHARACTER SET utf8mb4;
-- Passa da un tipo binario, così i byte vengono preservati e non reinterpretati ALTER TABLE t MODIFY c VARBINARY(255); ALTER TABLE t MODIFY c VARCHAR(255) CHARACTER SET utf8mb4;
Un candidato marcato Parziale non ha superato l'andata e ritorno. È una pista da seguire, non una risposta da reincollare nel tuo database. Se non torna nulla come Esatto, l'input ha probabilmente già perso informazione: torna ai byte di origine.
// Prendi il primo candidato qualunque cosa dica il badge db.update(row.id, candidates[0].text);
// Riscrivi solo ciò che supera l'andata e ritorno if (candidates[0].lossless) db.update(row.id, candidates[0].text);
Chiamare encode su qualcosa che è già bytes, o decode su qualcosa che è già una stringa, in Python 3 solleva un'eccezione invece di fare in silenzio un giro attraverso l'ASCII. Decodifica i byte una volta sola, al confine, e da lì in poi tieni il testo come testo.
text = raw.decode('utf-8').encode('gbk').decode('utf-8') # Decodifica una volta sola al confine, con la codifica che il file usa davvero
with open(path, encoding='gbk') as f:
text = f.read() VARCHAR(50) in un bug di troncamento.iso-8859-1 e latin1 come semplici etichette per windows-1252. I due differiscono solo nell'intervallo 0x80–0x9F, dove il vero ISO-8859-1 ha caratteri di controllo e Windows-1252 ha punteggiatura stampabile come la lineetta lunga e le virgolette curve. Dato che quei caratteri stampabili sono esattamente ciò che salta fuori nel mojibake, Windows-1252 è il più utile dei due e questo strumento lo elenca una volta sola sotto entrambi i nomi. iconv -f GBK -t UTF-8 input.txt > output.txt su macOS o Linux, oppure Get-Content -Encoding Default in.txt | Set-Content -Encoding UTF8 out.txt in PowerShell. Incolla prima qui una riga rappresentativa per capire quali codifiche indicare nel comando: sbagliare direzione su un intero file è il modo in cui un problema da una riga diventa un problema da mille righe. Codifica e formattazione
La tabella ASCII completa: 128 caratteri in decimale, esadecimale, ottale e binario, più un convertitore online testo ↔ ASCII. Ogni carattere di controllo ha il suo escape, la notazione caret e dove lo incontri.
Codifica e formattazione
Decodifica e codifica Base64 online gratis. Conversione in tempo reale con pieno supporto UTF-8 ed emoji. 100% privato — gira nel tuo browser. Nessuna registrazione.
Codifica e formattazione
Decodifica una stringa Base64 o un data URI in un'immagine nel tuo browser. Anteprima, dimensioni e MIME, poi scarica come PNG, JPG, GIF, SVG. Nessun upload.
Codifica e formattazione
Converti CSV in JSON nel browser. RFC 4180, inferenza tipi, riga header, sicuro per big-int. 100% privato, nessun upload.
Codifica e formattazione
Incolla un file .env online e ottieni subito il JSON. Password, chiavi API e token non lasciano mai il browser: parser dotenv web, 100% privato, senza upload.
Codifica e formattazione
Decodifica le entità HTML e fai l'unescape dell'HTML online — gratis, senza registrazione, 100% nel browser. Riconverte riferimenti con nome, decimali ed esadecimali in caratteri; mai caricato.