2012-04-27 17 views
13

Sto lavorando alla decodifica del testo. Sto cercando di trovare il codice carattere per il carattere , da non confondere con -, in ASCII. Ho provato senza successo. Qualcuno sa come convertirlo?Qual è il codice carattere ASCII per '-'?

+0

Cosa intendi per "decodificare questo carattere"? Quale codifica è usata nel testo sorgente e quale codifica dovrebbe essere usata nel risultato? – raina77ow

+0

@ raina77ow: Provo a trovare il numero di questo carattere nel tavolo Ascii –

+0

Non c'è; pertanto, il suo codice dipende da quale codifica viene utilizzata. Ad esempio, nei testi Latin-1 'mdash' è rappresentato con il numero 151. – raina77ow

risposta

20

Citazione dal wiki (Em dash)

Quando una lineetta reale non è disponibile, come nel set di caratteri ASCII-doppia ("-") o triplo trattino-meno ("---") si usa. In Unicode, il trattino è U + 2014 (decimale 8212).

Il carattere di trattino basso non fa parte del set di caratteri ASCII.

+0

Quindi quando lo faccio: 'char check = s.charAt (0)', quando s = '-', cosa otterrò? Dici che se farò 'int check = s.charAt (0)', otterrò 8212? –

+3

@AdamSh Dipende da cosa si sta utilizzando per eseguire la decodifica. Non hai pubblicato alcun codice, quindi è difficile dirlo. Comunemente quando un decodificatore incontra qualcosa che non può decodificarlo, lo sostituisce con un punto interrogativo. – vcsjones

+0

Dovresti lanciare un'eccezione o iniziare a usare numeri interi più grandi e restituire 8212. – Li0liQ

5

è noto come Em Dash. Il suo codice carattere è \u2014. Non è un carattere ASCII, quindi non è possibile decodificarlo con il set di caratteri ASCII perché non è nella tabella dei caratteri ASCII. Probabilmente vorrai usare UTF8.

+0

Le stringhe JavaScript sono abilitate per Unicode ma usano UCS-2, non UTF-8, internamente. In entrambi i casi, non è necessario conoscere la codifica per rappresentarlo, poiché è possibile verificarlo con il punto di codice Unicode nel formato '\ u2014', come hai detto. – thomasrutter

2

Questo carattere non esiste in ASCII, ma solo in Unicode, solitamente codificato da UTF-8.

In UTF-8, i caratteri sono codificati da sequenze a 2 o 3 byte (o occasionalmente più lunghi), dove nessuno dei due o tre byte è un codice ASCII valido, in cui tutti sono al di fuori dell'intervallo ASCII di Da 0 a 127.

Si sospetta che quanto sopra risponda solo in parte alla domanda, ma in tal caso, probabilmente, perché la domanda è, inavvertitamente, solo parzialmente richiesta. Per ulteriori dettagli, puoi estendere la tua domanda con più dettagli.

Problemi correlati