Domanda

Qual è la differenza tra le codifiche Unicode, UTF8, UTF7, UTF16, UTF32, ASCII, e ANSI?

In che modo sono questi utile per i programmatori?

È stato utile?

Soluzione

Scendendo la vostra lista:

  • " Unicode " non è una codifica, anche se purtroppo, un sacco di documentazione utilizza impreciso per riferirsi a qualsiasi codifica Unicode quel particolare sistema utilizza per default. Su Windows e Java, questo significa spesso UTF-16; in molti altri luoghi, significa UTF-8. Correttamente, Unicode riferisce al carattere astratto si è posta, non a qualsiasi particolare codifica.
  • UTF-16 : 2 byte per "unità codice". Questo è il formato nativo di stringhe in .NET, e in generale in Windows e Java. Valori esterni all'intervallo Basic Multilingual Plane (BMP) sono codificati come coppie di surrogati. (Questi sono relativamente raramente utilizzati -.., Che è un buon lavoro, come molto pochi gli sviluppatori ad ottenere bene, ho il sospetto dubito molto che faccio)
  • UTF-8 : codifica a lunghezza variabile, 1-4 byte per punto di codice. valori ASCII sono codificati come ASCII con 1 byte.
  • UTF-7 : di solito utilizzato per la codifica di posta elettronica. Le probabilità sono se si pensa di bisogno e non stai facendo la posta, ti sbagli. (Questo è solo la mia esperienza di utenti che postano nei newsgroup, ecc -. Posta elettronica al di fuori, in realtà non è ampiamente utilizzato in tutto)
  • UTF-32 : larghezza fissa codifica utilizzando 4 byte per punto di codice. Questo non è molto efficiente, ma rende la vita più facile al di fuori del BMP. Ho una classe .NET Utf32String come parte del mio biblioteca MiscUtil , qualora si dovesse volerlo. (Non è stato molto accuratamente testato, ti dispiacerebbe.)
  • ASCII : codifica singolo byte utilizzando solo i 7 bit di fondo. (Punti di codice Unicode 0-127.) Non ci sono accenti etc.
  • ANSI: Non c'è nessuno codifica ANSI fisso - ci sono un sacco di loro. Di solito quando la gente dice "ANSI" che significa "il locale predefinito / codepage per il mio sistema" che si ottiene tramite Encoding.Default , ed è spesso su Windows 1252 ma può essere altri locali.

C'è di più su mia pagina Unicode e suggerimenti per il debug dei problemi Unicode .

L'altra grande risorsa di codice è unicode.org che contiene più informazioni di quanto potrai mai essere in grado di lavorare il vostro modo attraverso -. forse il bit più utile è la classifiche codice

Altri suggerimenti

Alcuni di lettura per iniziare sulla codifica dei caratteri: Joel on Software: Il Developer Absolute minimo Ogni software assolutamente, positivamente deve sapere su Unicode e set di caratteri (No Excuses!)

Tra l'altro - ASP.NET non ha nulla a che fare con esso. Codifiche sono universali.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top