PDA

View Full Version : Ma che caratteri sono quelli così: &_#8221;?!


Matrixbob
09-05-2007, 09:20
Es:
come ti “&_#8220;aggiorno&_#8221;” il cellulare, in automatico…

Non mi pare escaped html. :boh:

andbin
09-05-2007, 11:09
Es:
come ti “&_#8220;aggiorno&_#8221;” il cellulare, in automatico…

Non mi pare escaped html. :boh:Sono due entità per specificare caratteri Unicode. “ rappresenta il carattere U+201C e ” rappresenta il carattere U+201D.
Graficamente sono i simboli:
“ e ”

Matrixbob
12-05-2007, 00:03
Sono due entità per specificare caratteri Unicode. “ rappresenta il carattere U+201C e ” rappresenta il carattere U+201D.
Graficamente sono i simboli:
“ e ”

Ma li ho trovati in RSS e ATOM.
Non si dovrebbe trovare al massimo del escaped HTML?! :mbe:

Imrahil
12-05-2007, 00:15
Ma li ho trovati in RSS e ATOM.
Non si dovrebbe trovare al massimo del escaped HTML?! :mbe:

Algoritmi Laboratorio? :D

Matrixbob
12-05-2007, 09:26
Algoritmi Laboratorio? :D

No applicazione web, ma sei Stefano?!

andbin
12-05-2007, 21:00
Ma li ho trovati in RSS e ATOM.
Non si dovrebbe trovare al massimo del escaped HTML?! :mbe:RSS e ATOM sono dei "dialetti" XML (quindi un feed RSS/ATOM è un XML). E XML consente tale tipo di entità per specificare caratteri Unicode (leggere <qui> (http://www.w3.org/TR/REC-xml/#dt-charref)).

Matrixbob
13-05-2007, 22:35
RSS e ATOM sono dei "dialetti" XML (quindi un feed RSS/ATOM è un XML). E XML consente tale tipo di entità per specificare caratteri Unicode (leggere <qui> (http://www.w3.org/TR/REC-xml/#dt-charref)).

Ma io avevo capito che le direttive RSS2/ATOM1 permettessero solo l'escaped html.
Così la cosa si complica.
Ma effettivamente ho letto anche XHTML e quindi come dici tu, mi ci ritroverò anche l'unicode.

C'è 1 maniera x aggiustare automaticamente tutti i caratteri (magari con una qualche funzioncina) senza mettermi io a fare tutta la casistica possibile e sostituire le stirnghe?! :(

andbin
14-05-2007, 08:35
Ma io avevo capito che le direttive RSS2/ATOM1 permettessero solo l'escaped html.
Così la cosa si complica.
Ma effettivamente ho letto anche XHTML e quindi come dici tu, mi ci ritroverò anche l'unicode.

C'è 1 maniera x aggiustare automaticamente tutti i caratteri (magari con una qualche funzioncina) senza mettermi io a fare tutta la casistica possibile e sostituire le stirnghe?! :(Giusto per capire ... tu devi scrivere o leggere un file RSS/ATOM?? E tramite quale linguaggio di programmazione?

Se devi leggere un file XML ti affiderai sicuramente ad un parser, che fa tutto lui per quanto riguarda l'interpretazione delle entità.
Se invece devi scrivere è comunque semplice. Innanzitutto devi stabilire il charset da usare. Non sei obbligato a codificare un carattere unicode come “. Se, per esempio, dichiari un charset come UTF-8, basta che mandi in output la sequenza esatta per codificare questo carattere, cioè (in hex) E2 80 9C.

È la stessa identica cosa che succede anche in HTML/XHTML. Le entità le puoi sempre mettere in qualunque caso e indipendentemente da quale charset specifichi. Poi sei libero di scrivere nel file un qualunque carattere secondo il charset specificato.

Matrixbob
14-05-2007, 10:20
Giusto per capire ... tu devi scrivere o leggere un file RSS/ATOM??

Diciamo che tra le cose che devo fare c'è quella di prendere alcune informazioni tra alcuni TAG, non tutti i TAG.


E tramite quale linguaggio di programmazione?

In C.


Se devi leggere un file XML ti affiderai sicuramente ad un parser, che fa tutto lui per quanto riguarda l'interpretazione delle entità.

Eh no, ho scritto io 6 pagine di codice, dato che è + 1 aplz web che fa un po' di "tutto".


Se invece devi scrivere è comunque semplice. Innanzitutto devi stabilire il charset da usare. Non sei obbligato a codificare un carattere unicode come “. Se, per esempio, dichiari un charset come UTF-8, basta che mandi in output la sequenza esatta per codificare questo carattere, cioè (in hex) E2 80 9C.

È la stessa identica cosa che succede anche in HTML/XHTML. Le entità le puoi sempre mettere in qualunque caso e indipendentemente da quale charset specifichi. Poi sei libero di scrivere nel file un qualunque carattere secondo il charset specificato.

Questo provo a capiro meglio dopo xkè mi pare criptico x me e devo fare 1 commissione stamane.
Se dopo continuo a NON capire richiedo. :)

andbin
14-05-2007, 11:12
In C.

Eh no, ho scritto io 6 pagine di codice, dato che è + 1 aplz web che fa un po' di "tutto".Certo ... in 6 pagine di codice non si può pretendere di realizzare un parser XML completo e aderente ai vari standard! Ma non fai prima ad usare un parser apposito? Es. libxml (http://xmlsoft.org).

Questo provo a capiro meglio dopo xkè mi pare criptico x meOk, vediamo di chiarire con un esempio pratico: si vuole mettere in una pagina HTML la lettera 'è' (una 'e' con accento grave).

Posso scriverla come entità, con nome o con codice Unicode: &egrave; oppure è oppure ancora &#xe8;
Questo sempre e in qualunque caso.

Se nel head del html ho specificato un charset, ad esempio:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
allora posso scrivere nel documento proprio un byte con valore 0xe8.

Se il charset fosse ad esempio:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
allora posso scrivere nel documento una sequenza di 2 byte 0xc3 0xa8.

Per quanto riguarda XML è praticamente (quasi) la stessa cosa, con la differenza che il charset si specifica in modo diverso, es. <?xml version='1.0' encoding='iso-8859-1'?> e poi in XML ci sono solo 5 entità predefinite relative ai caratteri < > & " '. Quindi &egrave; non è predefinita ma si può definirla tramite un DTD con <!ENTITY egrave "&#xe8;">

Così è più chiaro?

Matrixbob
15-05-2007, 10:53
Certo ... in 6 pagine di codice non si può pretendere di realizzare un parser XML completo e aderente ai vari standard! Ma non fai prima ad usare un parser apposito? Es. libxml (http://xmlsoft.org).

Perchè mi era rimasto 1 parser base dal laboratorio di algoritmi.
Il tempo stringeva ed avevo 1 fretta del diavolo.
Non avevo 1 esempio chiaro di come installare ed utilizzare velocemente le libxml era tutto così dispersivo ed oscuro.
Ci fosse stato qualcosa tipo "QUICK START/INSTALL" o "GET STARTING/INSTALLING" l'avrei senza dubbio utilizzato.

Matrixbob
21-05-2007, 10:13
devi stabilire il charset da usare. Non sei obbligato a codificare un carattere unicode come “. Se, per esempio, dichiari un charset come UTF-8, basta che mandi in output la sequenza esatta per codificare questo carattere, cioè (in hex) E2 80 9C.

DOMANDONE:

[1]
Avere le entità che cosa comporta?! Che vantaggio danno?!

[2]
"&egrave;" è l'entità?
"è" è il nome?
"&#xe8;" è l'unicode?

Matrixbob
21-05-2007, 10:19
Posso scriverla come entità, con nome o con codice Unicode: &egrave; oppure è oppure ancora &#xe8;
Questo sempre e in qualunque caso.

Se nel head del html ho specificato un charset, ad esempio:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
allora posso scrivere nel documento proprio un byte con valore 0xe8.

Se il charset fosse ad esempio:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
allora posso scrivere nel documento una sequenza di 2 byte 0xc3 0xa8.


Ecco, la teoria che sta dietro ai charset non lo ho mai capita.
Perchè c'è iso-8859-1, utf-8, ecc?! :mbe:

andbin
21-05-2007, 10:25
[1]
Avere le entità che cosa comporta?! Che vantaggio danno?!Diciamo che se per i caratteri non ASCII usi solamente entità (con nome o con codice Unicode) allora il tuo file diventa un ASCII puro.


[2]
"&egrave;" è l'entità?
"è" è il nome?
"&#xe8;" è l'unicode?Sì, comunque "è" è il carattere vero e proprio.

Matrixbob
21-05-2007, 10:41
Diciamo che se per i caratteri non ASCII usi solamente entità (con nome o con codice Unicode) allora il tuo file diventa un ASCII puro.

Sì, comunque "è" è il carattere vero e proprio.

Quindi 1 stringa di caratteri è 1 carattere vero e proprio.
Ma cosa intendi quando dici 1 byte / 2 byte possono essere scritti come "sequenza di caratteri"?!

andbin
21-05-2007, 11:01
Quindi 1 stringa di caratteri è 1 carattere vero e proprio.
Ma cosa intendi quando dici 1 byte / 2 byte possono essere scritti come "sequenza di caratteri"?!Dipende, in generale, dal charset che vuoi usare e dichiarare nel XML(/HTML).

Se dichiari ISO-8859-1 la 'è' va codificata con il byte 0xe8, se dichiari UTF-8 la 'è' va codificata con i byte 0xc3 0xa8, con altri charset può essere ancora diverso.

E se sei che tu che stai scrivendo il file, è chiaro che devi sapere come codificare i caratteri.