[VB .NET] Codici ASCII

martedì 07 aprile 2009 - 09.49

ilfurla Profilo | Newbie

Ciao a tutti,
Ho usato la funzione Asc() (AscW() non fa differenza) per estrarre i codici ascii dei caratteri contenuti in una TextBox. La cosa però sembra funzionare solo fino al codice 126. Per esempio il carattere "è" mi viene restituito come codice 232, ma se io, p.es. in word ma anche per scrivere questo post, digito ALT+232 mi appare il carattere Φ, mentre per la è devo digitare ALT+138.
Qualcuno sa spiegarmi qual è la regola secondo la quale il codice ascii 232 a volte significa Φ ed a volte significa è?
Oppure la funzione da utilizzare è un'altra?
Grazie

luxsor Profilo | Guru

Ciao Marco,
la differenza invece c'è:
ASC restituisce il punto di codice, o codice carattere, per il carattere di input, che può essere compreso tra 0 e 255 per i valori di set di caratteri a byte singolo (SBCS, Single-Byte Character Set) e tra -32768 e 32767 per i valori di set di caratteri a byte doppio (DBCS, Double-Byte Character Set).

Il valore restituito dipende dalla tabella codici per il thread corrente, contenuta nella proprietà ANSICodePage della classe TextInfo nello spazio dei nomi System.Globalization. È possibile ottenere ANSICodePage specificando System.Globalization.CultureInfo.CurrentCulture.TextInfo.ANSICodePage.

ASCW restituisce il punto di codice Unicode per il carattere di input, che può essere compreso tra 0 e 65535. Il valore restituito è indipendente dalle impostazioni della tabella codici e della lingua per il thread corrente

Dai un occhiata qua
http://msdn.microsoft.com/it-it/library/system.globalization.textinfo(VS.80).aspx
http://www.cliro.unibo.it/portale/servizi/documenti/AnsiTable.asp

Ciao


ilfurla Profilo | Newbie

Grazie luxsor. Per me è un po' complicato, ma ora cercherò di capire, anche grazie al link, cosa devo fare per avere il codice ascii

luxsor Profilo | Guru

Per convertire un carattere nel rispettivo codice ascii:

Dim CodeChar as Integer
CodeChar=AscW(233)

Per convertire un Codice ASCII nel respettivo carattere
Dim CharCode as String
CharCode= Convert.ToChar(232).ToString()

Spero che intendevi questo









ilfurla Profilo | Newbie

OK, sei stato molto gentile (ed anche molto utile) anche se ancora non riesco a capire come mai da tastiera ALT+232 corrisponde al carattere Φ mentre nella tabella codici ascii che mi hai linkato corrisponde alla è (e accentata)

luxsor Profilo | Guru

Lo standard ASCII arriva fino a 127.
Per codice superiori si fa riferimento allo standard ASCII/ANSI
Il carattere "è" nn è ALT+232 ma ALT + 0232 (devi aggiungere lo 0)

E' chiaro ora

ilfurla Profilo | Newbie

ok, grazie. E' chiaro

luxsor Profilo | Guru

Accetta una risposta così chiudiamo il thread

Ciao
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5