2011-12-16 8 views
9

Qual è lo scopo del carattere Unicode 'BACKSPACE' (U + 0008) nella programmazione? Per quali applicazioni può essere utilizzato?Qual è lo scopo di Unicode "Backspace" U + 0008?

+3

Se non è possibile determinare lo scopo per un particolare simbolo Unicode, è probabile che entri nella categoria "intrattenimento personale", proprio come U + 2603 e U + 1F4A9. :-) –

+1

In realtà c'è uno scopo reale per entrambi i personaggi: piena compatibilità con altri set di caratteri (entrambi di origine giapponese, in questo caso!) Che includono quei personaggi. – duskwuff

risposta

12

Um, è un carattere backspace.

In uscita a un terminale, in genere sposta il cursore di una posizione a sinistra (a seconda delle impostazioni). All'ingresso, in genere cancella l'ultimo carattere immesso (a seconda dell'applicazione e delle impostazioni del terminale), sebbene a questo scopo venga utilizzato anche il carattere DEL/DELETE. Tipicamente può essere inserito premendo Backspace o Control-H

nota che la sua azione di caratteri eliminazione avviene solo su un display, non in memoria. Una stringa all'interno di un programma in esecuzione può contenere praticamente qualsiasi sequenza di caratteri (a seconda forse della lingua), incluso il backspace. In quel contesto, generalmente è solo un altro personaggio. Ad esempio, in C strlen("abcd\b") è 5, non 3.

In C e in molte altre lingue, è rappresentato nella sorgente del programma come '\b'. A volte viene visualizzato come ^H.

Tutto ciò vale indipendentemente dal fatto che sia rappresentato come Unicode o meno. Il carattere backspace è comune alla maggior parte o a tutti i set di caratteri: ASCII, Latin-1, le varie rappresentazioni Unicode - anche EBCDIC ha un carattere backspace (ma con un codice diverso).

+0

Quindi aggiungere \ b a una stringa è più efficiente di chiamare string = substring() o qualcosa del genere? La stringa "this \ b" avrà una lunghezza di 3 o 5? – skibulk

+2

'" this \ b "' ha una lunghezza di 5. L'aggiunta di un carattere backspace a una stringa non rimuove i caratteri dalla stringa. La sua azione di cancellazione dei caratteri si verifica sul display, non nella memoria. –

+1

Si noti che quando '\ b' viene scritto su una stampante anziché su uno schermo, esegue il sovrascrittura anziché la cancellazione. Questo ha permesso un modo primitivo di implementare la sottolineatura ('A \ b_'), grassetto (' A \ bA'), o caratteri accentati ('n \ b ~'). – dan04