Double.ToString("#,##0.00 €"); Non Visualizza € sullo schermo ma ben...

mercoledì 15 ottobre 2014 - 17.12
Tag Elenco Tags  C#  |  VB.NET  |  .NET 1.0  |  .NET 1.1  |  .NET 2.0  |  .NET 3.0  |  .NET 3.5  |  .NET 4.0

vankraster Profilo | Newbie

Salve ragazzi io dal code-behind faccio response.write(double.ToString("#,##0.00 €")); e come risultato ho "2.012,10 ?" invece di "2.012,10 €"
ho impostato su web.config
<globalization culture="IT-it" uiCulture="IT-it" requestEncoding="iso-8859-1" responseEncoding="iso-8859-1"/>
perche non riesco a stampare a video il segno €

grazie

0v3rCl0ck Profilo | Guru

provato a metterci attorno un

Server.HtmlEncode(...)

?


Michael Denny | Microsoft Visual C# MVP
http://blogs.dotnethell.it/Regulator/
http://dennymichael.net
http://mvp.microsoft.com/mvp/Michael%20Denny-5000735
Twitter: @dennymic

vankraster Profilo | Newbie

si ma dovrei fare Double.ToString("#,##0.00") + server.HTMLEncode(" €") io invece vorrei lasciare invariato il codice, anche perché in locale mi funziona solo su server riscontro questo problema.

0v3rCl0ck Profilo | Guru

perchè ho paura che sia l'encoding che viene assegnato alla pagina html e che viene governato dal browser... se vuoi usare caratteri speciali direttamente stampati nella response, devi anche assicurarti di dare il corretto html meta charset (http://www.w3schools.com/tags/att_meta_charset.asp)

comunque puoi anche fare così, senza usare la concatenazione:

Server.HtmlEncode(value.ToString(...))


Michael Denny | Microsoft Visual C# MVP
http://blogs.dotnethell.it/Regulator/
http://dennymichael.net
http://mvp.microsoft.com/mvp/Michael%20Denny-5000735
Twitter: @dennymic

0v3rCl0ck Profilo | Guru

oppure anche così nelle pagina html.

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />

puoi anche provare a forzare il simbolo come literal, per essere sicuro che venga restituito dal tostring senza applicare nessuna trasformazione:

value.ToString("#,##0.00 '€'")

basta racchiudere il simbolo tra singoli apici '€'


Michael Denny | Microsoft Visual C# MVP
http://blogs.dotnethell.it/Regulator/
http://dennymichael.net
http://mvp.microsoft.com/mvp/Michael%20Denny-5000735
Twitter: @dennymic

0v3rCl0ck Profilo | Guru

controllando bene il charset che hai utilizzato 'ISO-8859-1', mi sono accorto che quel set di caratteri non comprende il simbolo di euro (http://en.wikipedia.org/wiki/ISO/IEC_8859-1), quindi mi sa che dovrai cambiarlo, altrimenti forzare un literal '&euro;' al posto di '€'

sinceramente se in locale hai lo stesso response encoding, dovresti ottenere lo stesso risultato, a meno che il tuo browser forzi un encoding diverso per le pagine locali, in chrome, lo vedi dalle opzioni -> tools -> encoding



Michael Denny | Microsoft Visual C# MVP
http://blogs.dotnethell.it/Regulator/
http://dennymichael.net
http://mvp.microsoft.com/mvp/Michael%20Denny-5000735
Twitter: @dennymic

vankraster Profilo | Newbie

Ho risolto grazie a te, ho cambiato ISO 8859-1 con ISO 8859-15 guardando le differenze qui http://www.i18nqa.com/debug/table-iso8859-1-vs-iso8859-15.html sono alcuni caratteri ma importante è che ci hanno aggiunto l'€.
Grazie

0v3rCl0ck Profilo | Guru

ok perfetto

alla prossima, ciao!

Michael Denny | Microsoft Visual C# MVP
http://blogs.dotnethell.it/Regulator/
http://dennymichael.net
http://mvp.microsoft.com/mvp/Michael%20Denny-5000735
Twitter: @dennymic
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