2010-07-22 13 views
5

Di solito sono uno sviluppatore LAMP, ma alcuni lavori .NET sono arrivati ​​sul mio piatto e sono un po 'perplesso.Segnali cancelletto (£) che scompaiono dalle stringhe ASP.NET

Se corro il seguente codice: viene visualizzato

<% poundsign = "£" %> 
<% Response.Write poundsign %> 
<% Response.Write "£" %> 

... niente. Tuttavia, al di fuori dei tag <%% (cioè nell'HTML) £ viene visualizzato correttamente.

Non ho problemi a visualizzare i soliti caratteri alfanumerici, è solo il simbolo £ che si sta dimostrando problematico. Il file sottostante è nella codifica di Windows 1252 e devo servirlo come tale. Se salvi il file come UTF-8, ricevo mojibake invece di £.

Qualcuno ha idea di cosa posso fare per farlo funzionare, o qualsiasi impostazione che potrebbe impedirne il funzionamento (tranne il salvataggio del file in un formato diverso)? Grazie in anticipo.

MODIFICA: Scusate ragazzi, avrei dovuto accennare prima, ma & sterlina; non aiuterà A parte il fatto che i miei £ s non compaiono sulla pagina, una parte importante del mio problema è che ho bisogno di inserire stringhe contenenti £ in un database del server SQL, ma se formulo un'istruzione SQL INSERT all'interno dell'ASP, nessuna dei segni £ finiscono per apparire nel database. L'inserimento di segni £ nel database da ASP non è un problema quando salvi i file asp come file UTF-8, ma ho bisogno che tutto funzioni nella codifica Windows 1252. Grazie ancora.

+0

Qualsiasi motivo non lo si gestisce nel codice sottostante? –

+0

@Sonny Boy, perché questo cambierebbe il comportamento? – jball

risposta

2

Grazie per il vostro aiuto, tutti. Si è scoperto che il problema era causato dal mio file ASP di Windows 1252 che caricava un inclusione UTF-8, compromettendo così la codifica della pagina risultante.

5

utilizzare il codice ASCII &pound;

Si tratta di un'entità HTML e deve essere accessibile tramite il codice, per saperne di più here.

+0

Grazie per la tua risposta - ahimè le entità HTML non mi aiutano, per ragioni ora spiegate nel mio post originale. Scusa per non essere più chiaro in primo luogo! –

+0

Non sono sicuro, £ fa parte del set di caratteri per la codifica di Windows 1252, vedi http://en.wikipedia.org/wiki/Windows-1252 –

3

utilizzare il seguente:

<% Response.Write("&pound;") %> 
1

ne dici di questo?

<% poundsign = Chr(163) %> 
<% Response.Write poundsign %> 
<% Response.Write "£" %> 
+0

Stranamente, chr (163) viene visualizzato come "s". –

Problemi correlati