Stringa null-terminata: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Funzionalità collegamenti suggeriti: 3 collegamenti inseriti.
m clean up, replaced: |dataaccesso= → |accesso= (3)
 
Riga 22:
 
== Codifiche dei caratteri ==
Le stringhe null-terminate richiedono che la codifica non utilizzi un byte zero (0x00) da nessuna parte, quindi non è possibile memorizzare tutte le possibili [[ASCII|stringhe ASCII]] o [[UTF-8]].<ref>{{Cita web|url=http://tools.ietf.org/html/rfc3629#section-3|titolo=UTF-8, a transformation format of ISO 10646|dataaccessoaccesso=19 settembre 2013}}</ref><ref><!-- This is the encoding table provided as a resource by the Unicode consortium: http://www.unicode.org/resources/utf8.html -->{{Cita web|url=http://www.utf8-chartable.de/|titolo=Unicode/UTF-8-character table|dataaccessoaccesso=13 settembre 2013}}</ref><ref>{{Cita web|url=http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8|titolo=UTF-8 and Unicode FAQ|cognome=Kuhn|nome=Markus|dataaccessoaccesso=13 settembre 2013}}</ref> Tuttavia, è comune memorizzare il sottoinsieme di ASCII o UTF-8 – ogni carattere tranne NUL – in stringhe null-terminate. Alcuni sistemi usano "[[UTF-8|UTF-8 modificato]]" che codifica NUL come due byte diversi da zero (0xC0, 0x80) e quindi consente di memorizzare tutte le stringhe possibili. Questo non è consentito dallo standard UTF-8, perché è una [[UTF-8|codifica troppo lunga]] ed è vista come un rischio per la sicurezza. Alcuni altri byte possono essere invece utilizzati come fine della stringa, come 0xFE o 0xFF, che non vengono utilizzati in UTF-8.
 
[[UTF-16]] utilizza numeri interi a 2 byte e poiché entrambi i byte possono essere zero (e infatti ''ogni altro'' byte lo è, quando si rappresenta testo ASCII), non può essere archiviato in una stringa di byte con terminazione null. Tuttavia, alcuni linguaggi implementano una stringa di caratteri [[UTF-16]] a [[16 bit]], terminata da un NUL a 16 bit.