Newsgroup: it.comp.lang.javascript
Titolo: [?] accentate, aspx e xhtml

Questa non riesco a spiegarmela proprio.
Pagine (sono la stessa con estensioni diverse):
http://www.criosoftware.it/TestAccentata.aspx
http://www.criosoftware.it/TestAccentata.asp
http://www.criosoftware.it/TestAccentata.htm
Errore "previsto }".
Adesso: a) l'errore lo dà solo con aspx (e già qua mi chiedo come può
essere possibile) b) segnala errore solo se metto la function in un js
esterno, se lo copioincollo nella pagina non segnala errore.
L'errore lo ho rilevato: è la à accentata nel commento. Vi copio il
semplice js di prova (è l'intestazione di un function che aveva postato
tempo fa Zer0, leggermente modificata per le mie esigenze):
function MakeComputedStyle(TarGet) {
 //se TarGet==null window corrente, altrimenti TarGet=oggetto window
 //da chiamare per prima se serve usare getComputedStyle (per sapere valore
di una proprietà, es. display, senza averla settata via tag o css)
 //chiamo in automatico da carica_prototype()
 /*
  esempio di uso:
    getComputedStyle(oggetto,"").display
 */
 if(TarGet==null) TarGet=window;
 if (typeof TarGet.getComputedStyle!="function"){ 
 } //se sei già
} //MakeComputedStyle
Come vedete non fa praticamente nulla (e non viene neanche eseguita).
L'errore è quel "già"; se la stringa (notare il rem) termina con la à
finale segnala errore; basta mettere uno spazio bianco subito dopo e
l'errore scompare.
Adesso dico:
Perché????
A questa non so dare risposta; capisco xml, ma perché dà errore che si
toglie mettendo un altro carattere dopo la à? E perché solo per aspx? (se è
un js esterno aspx non dovrebbe minimamente considerarlo...)
Il problema di per sè lo ho risolto (metto uno spazio dopo l'accentata,
oppure racchiudo in <![CDATA[...]]>), ma vorrei capire la logica (se
esiste) o se per caso è un bug.
p.s. firefox 1.0 non segnala errore.
-- 
"Emancipate yourselves from mental slavery;
None but ourselves can free our minds"
									    B.M.

 p.s. firefox 1.0 non segnala errore.
ricapitolando, IE ti segnala errore soltanto quando apri la pagina .aspx?
non ho modo di verificarlo che' sono su linux, ma con tutta probabilita' hai
beccato un bug
-- 
artemis.alpeia

 beccato un bug
Ci ho passato la mattinata sopra (è un js con tantissimi prototype, non ti
dico per beccarlo...ed è un js copiaincollato da parecchi siti in cui lo
uso, ma tutti asp). Ma porc...
-- 
"e mai che mi sia venuto in mente
 di essere più ubriaco di voi
 di essere molto più ubriaco di voi"
									  F.D.A.

 uso, ma tutti asp). Ma porc...
un ultimo controllo... imposta manualmente il charset a Europa Occidentale
(ISO 8859-1) e verifica se l'errore si ripresenta. Potrebbe essere un
problema legato agli headers http.
-- 
artemis.alpeia

 problema legato agli headers http.
C'è già questo:
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
Dovrebbe bastare...no?


Dovrebbe bastare...no?
Se non ricordo male il charset impostato negli headers http ha la
precedenza su tutti gli altri. In Firefox puoi verificare quello usato
in "page info". Dai tre URL che hai postato ricevi questi headers:
http://www.criosoftware.it/TestAccentata.asp
Server: Microsoft-IIS/5.0
Date: Tue, 09 Nov 2004 12:56:38 GMT
X-Powered-By: 
ASP.NET
Content-Length: 406
Content-Type: text/html
Cache-Control: private
http://www.criosoftware.it/TestAccentata.aspx
Server: Microsoft-IIS/5.0
Date: Tue, 09 Nov 2004 12:49:39 GMT
X-Powered-By: 
ASP.NET
X-AspNet-Version: 1.1.4322
Cache-Control: private
Content-Type: text/html; charset=utf-8
Content-Length: 406
http://www.criosoftware.it/TestAccentata.htm
Server: Microsoft-IIS/5.0
X-Powered-By: 
ASP.NET
Date: Tue, 09 Nov 2004 12:57:07 GMT
Content-Type: text/html
Accept-Ranges: bytes
Last-Modified: Tue, 09 Nov 2004 11:02:03 GMT
Etag: "d0d51a8b4bc6c41:c20"
Content-Length: 406
Mentre .asp e .htm non specificano il charset, .aspx lo definisce come
utf-8.
'bye

 utf-8.
E quindi?
Mi è arrivata una mail (non so perché non abbia risposto qua) che mi dice
di aprire il file e di salvarlo in ascii per risolvere il problema. Ma
ovviamente non è fattibile perché dovrei ogni volta che modifico eseguire
questa procedura.
-- 
"Affacciati affacciati benedici, guardaci
 guardaci...guardaci!
 Tanto sono quasi duemila anni che stai a guardare!"
									    E.B.

E quindi?
Non sono un esperto di ASP ma spero che tu possa inviare da ASP gli
headers della pagina, quindi dovrebbe bastare l'invio del Content-Type
con settato il charset che vuoi tu o semplicemente text/html senza il
charset.
Guardando in giro con google ho visto che in 
ASP.NET
 con C# puoi usare
qualcosa del tipo:
this.Response.AddHeader("Content-Type", "text/html");
Non garantisco nulla ovviamente :-)
'bye

 this.Response.AddHeader("Content-Type", "text/html");
Ma il problema è al contrario: quello che segnala errore è aspx che è
l'unico che. sembra, invia il charset...
-- 
"That until there is no longer first class
And second class citizens of any nation
Until the colour of a man's skin
Is of no more significance than the colour of his eyes
Me say war"
B.M.

l'unico che. sembra, invia il charset...
Speravo fosse possibile qualcosa di simile anche con aspx.
'bye

l'unico che. sembra, invia il charset...
Prova a vedere se qui trovi qualcosa:
http://www.asp.net/Tutorials/quickstart.aspx
Alle voci sotto "Localization"
'bye

 l'unico che. sembra, invia il charset...
Si, appunto. Solo che aspx lo definisce come utf-8; come Agostino ha detto
nel suo post.
Come ha giustamente detto, devi forzare 
ASP.NET
 a sputare la pagina col
charset corretto. In sostanza, devi scrivere:
/* opzionale, giusto per completezza */
Response.AddHeader("Content-Type","text/html");
/* eccollalla' */
Response.Charset="iso-8859-1";
Cosi' dovrebbe funzionare. Ovviamente, devi chiudere e riaprire la finestra
di IE, dato che si "memorizza" il content-type e charset precedente, se fai
il reload.
-- 
ZER0://coder.gfxer.web-designer/
~ Il computer e' una macchina progettata per velocizzare e automatizzare
gli errori.
on air ~ "Luca Dirisio - Calma e sanguefreddo"

 Response.Charset="iso-8859-1";
Sě, cosě funziona.
Quindi il fatto che io glielo invio col meta non serve a nulla? (va
comunque lasciato per xhtml; lo ho lasciato nella pagina e non sembra dare
problemi)
-- 
"e mai che mi sia venuto in mente
 di essere piů ubriaco di voi
 di essere molto piů ubriaco di voi"
									  F.D.A.

 problemi)
Ma il discorso della validazione, poi..?
-- 
ZER0://coder.gfxer.web-designer/
~ La vita e' una tempesta, ma prenderla nel culo e' un lampo.
(B. Grillo)
on air ~ "Do As Infinity - fukai mori"

Quindi il fatto che io glielo invio col meta non serve a nulla? (va
http://www.w3.org/International/questions/qa-http-and-lang
[...]and the HTTP header takes precedence over the meta
declaration.[...]
'bye

 declaration.[...]
Che 
asp.net
 si arroga il diritto di inserire di default...cioé: e perché
gli dovrebbe arrivare questo header? Negli header aggiunti nella
configurazione di iis c'è solo un X-Powered-By:
ASP.NET
 ...


 Ma il discorso della validazione, poi..?
Dunque
il discorso della validazione valida, nel senso che sto provando ad usare
xhtml-strict (messo da parte il dtd proprietario visto che tanto non
valida).
Dopo 2 settimane di, scusate, sane e robuste bestemmie, oggi pomeriggio ho
abbandonato il layout tableless.
Funziona benino per siti semplici, ma non è possibile che non appena
aggiungo un elemento firefox è perfetto e IE fa delle immani porcate: non
espande correttamente in altezza il contenitore, posiziona come cazzo vuole
lui, gestisce padding, border e margin come gli gira etc etc.
E' probabilmente fattibile ma ci vuole troppo tempo e occorre mettere
troppi work-around per quello schifo di IE.
Ritorno alle mie tabelle, magari dando la struttura principale e usando
altro per le parti interne. 
Quando uscirà il prossimo IE, e se sarà finalmente decente, vedrò di
rimettere mano al layout.


 Content-Type: text/html; charset=utf-8
bingo ;)
-- 
artemis.alpeia

 bingo ;)
Sě
ma non capisco il perché con estensione aspx gli invii l'header che
decidono loro...
-- 
"e mai che mi sia venuto in mente


decidono loro...
Definiti tramite Web.config forse?
<configuration>
 <system.web>
  <globalization 
   fileEncoding="utf-8" [...] />
 </system.web>
</configuration>
'bye

    fileEncoding="utf-8" [...] />
L'attributo che gli serve e' il responseEncoding, non il fileEncoding:
<globalization 
	responseEncoding="iso-8859-1"
/>
(ed eventualmente un requestEncoding)
Cmq qua c'e' tutta la documentazione del caso:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/gngrfglobalizationsection.asp
-- 
ZER0://coder.gfxer.web-designer/
~ Se potete leggere questo, la mia donna e' caduta.
(Letta sul retro di una maglietta di un motociclista)


 rimettere mano al layout.
Il punto e' gia' adesso si desidera sviluppare lo stesso layout anche per
IE5 e IE5.5.. quindi anche se uscira' IE7 e sara' "finalmente decente",
avrai cmq i soliti problemi che hai adesso (perche' quanto meno dovrai
supportare IE6).
-- 
ZER0://coder.gfxer.web-designer/
~ L'ingegnere non vive, funziona.


 L'attributo che gli serve e' il responseEncoding, non il fileEncoding:
Eggià...era una pagina di prova, manco lo ho creato il web.config...
Che modo di fare però
Grazie.


 Grazie.
non mi sembra strano, utf-8 e' l'encoding di default per xml
-- 
artemis.alpeia
Simplicity is the art of maximizing the amount of work not done

 non mi sembra strano, utf-8 e' l'encoding di default per xml
Mettendo iso-8859-1 mi cambia i caratteri accentati a video.
Ho messo iso-8859-15 (latin9) cosě:
   <globalization culture="IT-it" uiCulture="IT-it"
requestEncoding="latin9" responseEncoding="latin9"/>
e sembra adesso visualizzare i caratteri corretti (e non segnala errore
javascript).
Che ne pensate? Controindicazioni?
-- 
"E' l' ignoranza che crea l'intolleranza
 di gente cieca e senza coscienza"
									  S.S.S.