2010-07-22 7 views
5

Normalmente soy un desarrollador LAMP, pero algunos trabajos de .NET han llegado a mi plato y estoy un poco perplejo.Signos de libra (£) que desaparecen de las cadenas de ASP.NET

Si funciono el siguiente código: Se muestra

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

... nada. Sin embargo, fuera de las <%%> etiquetas (es decir, en el HTML) £ se muestra correctamente.

No tengo problemas para mostrar los alfanuméricos habituales, es solo el signo £ que está resultando problemático. El archivo subyacente está en la codificación de Windows 1252, y debo servirlo como tal. Si guardo el archivo como UTF-8, obtengo mojibake en lugar de £.

¿Alguien tiene alguna idea de lo que puedo hacer para que esto funcione, o cualquier configuración que pueda impedir su funcionamiento (aparte de guardar el archivo en un formato diferente)? Gracias por adelantado.

EDITAR: Lo siento chicos, debería haber mencionado antes, pero & libra; no ayuda Aparte del hecho de que mis £ s no aparecen en la página, una parte importante de mi problema es que necesito insertar cadenas que contengan £ en una base de datos del servidor SQL, pero si formulo una declaración SQL INSERT dentro de la ASP, ninguna de los signos £ terminan apareciendo en la base de datos. Insertar £ signos en la base de datos desde ASP no es un problema cuando guardo los archivos .asp como archivos UTF-8, pero necesito que todo funcione en la codificación de Windows 1252. Gracias de nuevo.

+0

¿Alguna razón por la que no está manejando en el código? –

+0

@Sonny Boy, ¿por qué eso cambiaría el comportamiento? – jball

Respuesta

2

Gracias por su ayuda, a todos. Resulta que el problema fue causado por mi archivo ASP Windows-1252 que cargaba un UTF-8, estropeando así la codificación de la página resultante.

5

Utilice el código ASCII &pound;

Es una entidad HTML y se necesita acceder a través del código, más here.

+0

Gracias por su respuesta. Por desgracia, las entidades HTML no me ayudarán, por las razones explicadas en mi publicación original. ¡Lo siento por no ser más claro en primer lugar! –

+0

No estoy seguro, £ es parte del conjunto de caracteres de codificación de Windows 1252, consulte http://en.wikipedia.org/wiki/Windows-1252 –

3

utilizar lo siguiente:

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

¿Qué tal esto?

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

Curiosamente, chr (163) se muestra como "s". –

Cuestiones relacionadas