Username: Password:

Author Topic: Charset ed Xml Encoding Declaration, lettere accentate in Aimon ed altri servizi  (Read 13090 times)

TheDarbula

  • Newbie
  • *
  • Posts: 19
    • View Profile
<?xml version="1.0" encoding="windows-1252"?>
Sostituire con
ISO_8859_1 (impostare la codifica predefinita del vostro editor di testo che deve supportare ISO8859_1).

Per molti servizi:
Aimon,Aimon free,vodafone sms,vodafone mms è altri che adesso mi sfuggono :) la codifica delle pagine uri collocate dai rispettivi proprietari dei servizi sms del sito è ISO8859_1. (pena il mancato invio corretto dei caratteri accentati)

Ps. è impossibile riprodurre il simbolo €, perciò cambiatelo. Il simbolo dell' euro è presente in ISO8859_15.
« Last Edit: October 19, 2011, 04:57:04 pm by TheDarbula »

Zydio

  • Administrator
  • Hero Member
  • *****
  • Posts: 2111
  • goText++ Desk! author
    • View Profile
    • goText++ Desk! homepage
<?xml version="1.0" encoding="windows-1252"?>
Sostituire con
ISO_8859_1 (impostare la codifica predefinita del vostro editor di testo che deve supportare ISO8859_1).

Per molti servizi:
Aimon,Aimon free,vodafone sms,vodafone mms è altri che adesso mi sfuggono :) la codifica delle pagine uri collocate dai rispettivi proprietari dei servizi sms del sito è ISO8859_1. (pena il mancato invio corretto dei caratteri accentati)

Ps. è impossibile riprodurre il simbolo €, perciò cambiatelo. Il simbolo dell' euro è presente in ISO8859_15.
Stai facendo un po' di confusione ;) .. quella che hai riportato è la dichiarazione dell'encoding con cui è stato salvato il file XML ed utilizzato solo per rileggere il contenuto del file XML in modo corretto (e fa parte dello standard XML del W3C), e nei servizi XML di goText questo non ha nessuna implicazione sull'encoding che viene utilizzato quando vengono codificati i dati da inviare ai server tramite i tag <page>.
goText++ Desk (e futuri altri motori XML) determinano automaticamente il charset utilizzato dai siti utilizzando le informazioni che essi forniscono negli header HTTP, solo se tali informazioni sono errate (e a volte capita) è possibile sovrascrivere il charset automaticamente determinato specificando l'attributo charset all'interno del tag <page> (come puoi leggere nella documentazione dei servizi XML di goText per il tag page).

Su Aimon/Aimon free non so cosa dire perché non ho un account ma mi sembra che le inviasse correttamente (ora non più?), ma Vodafone SMS invia correttamente le accentate, e Vodafone MMS non le invia né le ha mai inviate semplicemente perché non le supportava il server (indipendentemente dal charset usato). Ora invece usando ISO8859_1 Vodafone MMS invia le accentate?

TheDarbula

  • Newbie
  • *
  • Posts: 19
    • View Profile
nelle documentazione ufficiale dei service xml http://gotext.svn.sf.net/viewvc/gotext/xmlservices/trunk/it-vodafone190mms.xml ed è sbagliato concettualnente!!!

Si le lettere accentate funzionanano :)

Per quanto riguarda w3c è standard pure la DTD..

Vodafone mms se hai tempo la provi tu, togliendo anche la conversione delle accentate agli apostrofi

Ps. scarica le API da Aimon noterai nella seconda pagina che la piattaforma di utilizzare è ISO8859_1
« Last Edit: October 20, 2011, 01:13:56 pm by TheDarbula »

Zydio

  • Administrator
  • Hero Member
  • *****
  • Posts: 2111
  • goText++ Desk! author
    • View Profile
    • goText++ Desk! homepage
nelle documentazione ufficiale dei service xml http://gotext.svn.sf.net/viewvc/gotext/xmlservices/trunk/it-vodafone190mms.xml ed è sbagliato concettualnente!!!
A cosa ti riferisci quando dici che c'è qualcosa di sbagliato concettualmente? La forma dei servizi xml non è da considerarsi finalizzata, quindi se dettagli la tua osservazione nelle prossime versioni eventuali errori possono essere corretti!

Si le lettere accentate funzionano :)

(..)

Vodafone mms se hai tempo la provi tu, togliendo anche la conversione delle accentate agli apostrofi
Ho fatto qualche prova su Vodafone MMS eliminando gli attributi unsupported_char/replacement_char dal tag <service> ma né inviando i dati con ISO-8895-1 né inviandoli con codifica UTF-8 l'mms ricevuto conteneva le accentate (l'unica differenza tra i due è che nel secondo caso c'erano due punti interrogativi per lettera invece che uno ;) ).
Se hai modificato l'xml in un modo in cui vengono inviate correttamente le accentate puoi allegarlo al prossimo post che fai qui sul forum?
Thanks!

Per quanto riguarda w3c è standard pure la DTD..
Vero, ma non esiste nessuna DTD per i servizi XML di goText dato che nessuno l'hai mai fatta (e penso che anche in futuro le cose rimarranno così).

Ps. scarica le API da Aimon noterai nella seconda pagina che la piattaforma di utilizzare è ISO8859_1
Esatto, ma ISO-8859-1 e windows-1252 sono estremamente simili, in particolare tutte le lettere (comprese le accentate) ed i simboli base vengono rappresentate esattamente con le stesse sequenze di byte, e la differenza è che (come giustamente dicevi) ISO-8859-1 non prevede il simbolo dell'euro €, mentre windows-1252 lo prevede con il valore 0x80 (128 in decimale).....proprio ciò che si aspetta AIMON (dalla documentazione di AIMON: "Il carattere Euro (€) in quanto non rappresentabile in ISO-8859-1 sarà rappresentato secondo lo standard Windows-1252 ovvero 0x80").
Quindi volendo consentire agli utenti l'invio del carattere Euro la migliore approssimazione è proprio l'uso del charset windows-1252, credo che sia questa la considerazione che ha fatto egosum quando ha scritto il servizio in questione.

PS: questa conversazione credo sia interessante per chiunque voglia scrivere servizi XML dato che quello dei character set è da sempre un tema poco noto, e dato che tocca vari servizi credo che prossimamente la splitterò rispetto al thread di Aimon per renderla più visibile.

TheDarbula

  • Newbie
  • *
  • Posts: 19
    • View Profile
Perché ci sono le entità html?
Secondo il mio pensiero, è stato inventato per non far impazzire i programmatori!!!
È anche per dare la possibilità al browser per compatibilità di leggere le stesse lettere accentate (scritte in entità html,entità decimale html,entità esadecimale) cioè da essere lette sia con codifica UTF-8 oppure con ISO8859_1

Quando non si dichiara il "meta tag" in un pagina web  questa è scelta dal proprio web server, nel caso di Server Apache le estensioni (senza meta tag o il prologo xml) .html .htm sono in inviate come ISO8859_1 di default.
Mentre xml è xhtml sono inviate come UTF-8 di default.

Controlla le uri con un sniffer.. Le pagine di elaborazione è invio mi sembrano in UTF-8 solo la pagina del controllo immagine era ISO8859_1.

Molto probabilmente la risposta sta nel come è codificata la pagina uri..

Non so se in questo caso è così, sinceramente sono da cel.. chiedo scusa in anticipo.

Zydio

  • Administrator
  • Hero Member
  • *****
  • Posts: 2111
  • goText++ Desk! author
    • View Profile
    • goText++ Desk! homepage
Perché ci sono le entità html?
Secondo il mio pensiero, è stato inventato per non far impazzire i programmatori!!!
È anche per dare la possibilità al browser per compatibilità di leggere le stesse lettere accentate (scritte in entità html,entità decimale html,entità esadecimale) cioè da essere lette sia con codifica UTF-8 oppure con ISO8859_1
goText++ Desk! naturalmente gestisce le Xml/Html entities, ma se è vero che evitano grattacapi ai programmatori, non sono altrettanto comprensibili per l'utente comune che vuole curiosare o modificare o creare un servizio xml: per questo ad esempio gli unsupported_char includevano le lettere accentate tali e quali, e non la loro rappresentazione come entity.
I Servizi Xml di goText sono pensati e scritti per essere il più possibile comprensibili e modificabili da un qualsiasi utente del programma con conoscenze minime di cosa è un Tag e come funziona una pagina html!

Quando non si dichiara il "meta tag" in un pagina web  questa è scelta dal proprio web server, nel caso di Server Apache le estensioni (senza meta tag o il prologo xml) .html .htm sono in inviate come ISO8859_1 di default.
Mentre xml è xhtml sono inviate come UTF-8 di default.

Controlla le uri con un sniffer.. Le pagine di elaborazione è invio mi sembrano in UTF-8 solo la pagina del controllo immagine era ISO8859_1.

Molto probabilmente la risposta sta nel come è codificata la pagina uri..

Non so se in questo caso è così, sinceramente sono da cel.. chiedo scusa in anticipo.
Quando il server fornisce le informazioni sulla codifica del contenuto, attraverso l'header HTTP Content-Type, il motore xml di goText++ Desk! determina in automatico l'encoding dei dati ricevuti e quello dei dati da inviare in base a tale informazione. Ed è la stessa cosa che fa un browser web!
Se il server non invia tali informazioni, o se uno sviluppatore per qualsiasi motivo vuole sovrascrivere tali informazioni, allora può usare un meta-tag nell'HTML (che comunque corrisponde sempre al suddetto header http): goText++ Desk! non è in grado di rilevare quest'informazione nel testo HTML ricevuto da un sito web, quindi non vale l'automatismo di prima, e va usato l'attrbuto <page charset=""> che riportavo qualche post fa (Nota: ho preferito non rendere automatico questo caso del tag <meta http-equiv> per motivi prestazionali e per lasciare maggiore libertà a chi scrive i servizi, ma non perché non fosse tecnicamente possibile!).

In ogni caso, quindi in entrambi i suddetti, l'encoding nella Xml Encoding Declaration (la <?xml version="1.0" encoding="windows-1252"?> da te riportata) è sempre irrilevante ai fini della determinazione della codifica da usare per i caratteri da inviare. Ed è giusto che sia così, una cosa è la rappresentazione che è stata usata per salvare il testo (tag vari) nel file XML sul disco, ed un'altra cosa è la codifica caratteri da usare per effettuare l'urlencode delle stringhe da inviare ai server remoti con le richieste descritte dal file xml (che hanno senso solo in quanto interpretate ed eseguite da un software).

TheDarbula

  • Newbie
  • *
  • Posts: 19
    • View Profile
No per le pagine web :) questa è una pagina xhtml scritta con codifica ISO8859_1 senza meta tag
http://darbula.altervista.org/sbaglio.xhtml
oppure qui
http://darbula.altervista.org/sbaglio1.xhtml
c'è la è accentata però con UTF-8 non la vedrai (da provare se con la codifica automatica si vede) fammi sapere ciao.
EDIT:
con la codifica automatica la vedrai ISO8859_1 (Deve almeno rispettare i tag di base di html, se no si vedrà in UTF-8).
« Last Edit: October 20, 2011, 11:54:57 pm by TheDarbula »

TheDarbula

  • Newbie
  • *
  • Posts: 19
    • View Profile
http://www.simplemachines.org/community/index.php?topic=454362.0
Scusate il doppio post, ho fatto così per la capibilità.

Praticamente lui ha aggiornato il forum smf che era in codifica ISO8859_1, però la codifica (della lingua italiana era UTF-8) gli spuntatavano spazi bianchi che quando andata ha modificare erano ? si questi simboli.

Pensate cosa c'entra con noi vero? Semplice la logica mi dice che vodafone mms è con codifica UTF-8, perciò per dare il giusto output in xml si deve scrivere in questo caso non saprei se si può risolvere..(così si toglie un dubbio, mi raccomando le pagine devono essere tutte UTF-8 o ISO8859_1) Io credo che la pagina di inserimento testo messaggio (vodafone mms) è in UTF-8 è la pagina di invio sia ISO8859_1 o viceversa perciò porta problemi come hai visto. (non è un problema del server ma di programmatori).

Io non posso esaminare gli xml non ho un pc, ma solo un cellulare.
« Last Edit: October 20, 2011, 09:44:45 pm by TheDarbula »

Zydio

  • Administrator
  • Hero Member
  • *****
  • Posts: 2111
  • goText++ Desk! author
    • View Profile
    • goText++ Desk! homepage
Purtroppo per 190 MMS non c'è nulla da fare, le accentate non sono mai arrivate né inviando i dati in UTF-8, né con ISO-8859-1, né con windows-1252 (abbiamo fatto tutte le prove in passato, e qualcuna l'ho fatta nuovamente dopo la tua segnalazione). Come non è mai stato possibile spedire le accentate con successo nemmeno tramite browser dalle pagine del sito web di Vodafone.
Il problema evidentemente deve essere nel gateway MMS usato da Vodafone, o nelle pagine Java utilizzate da vodafone per trattare i dati ricevuti dal browser (o da goText nel nostro caso).

TheDarbula

  • Newbie
  • *
  • Posts: 19
    • View Profile
capisco quello che intendi!! devo fare la prova a vedere un mms online dal sito vodafone se si vedono le accentate non è un problema di gateway.
Un po di storia il standard "sms" definito da www.etsi.org gsm 03.38, gsm 0.40 secondo una speciale tabella da 0 a127 caratteri comprese accentate è il simbolo dell' euro (per i wap gateway e cellulari) e in codifica 7 bit ogni carattere è espresso in ottetti (ci sono le eccezioni, dove 10 caratteri valgono come due es.~\^[]{}|€ è formed feed) il messaggio può essere luogo 160 caratteri 140 bite*8:7.
Oppure espresso in 8 bit 140 caratteri.
O al di fuori delle lingue neo latine, tipo russo ecc. si tra UCS2 (termine ormai obsoleto sorpassato da UTF-16) che consente di inserire 70 caratteri a due bite.

Beh storia diversa per MMS, OpenMobileAlliance, 3GPP,W3org.
cmq. se da cellulare proviamo a scrivere (utilizzando la lingua italiana predefinita) ci accorgiamo che l'alfabeto vocali, consonanti, numeri senza accenti equivalgono ad un carattere (1 bite). Le accentate due caratteri (2 bite). il simbolo dell'euro tre caratteri (3 bite). Proprio come UTF-8 che arriva sino 4 bite.

Allora c'è un elemento di disturbo al sito vodafone (sicuramente di codifica)
la pagina iniziale sarà UTF-8 (dove inseriamo il testo),la pagina d'invio ISO8859_1 secondo me sbagliata (UTF-8).
Cosa ancora da chiarire è dico forse potrebbe essere pure un problema del database che è impostato in ISO8859_1 (in qualche modo dovrebbero sovrascrivere il default in UTF-8 per quella/e pagina/e)..come attualmente fa il tuo forum SMF, cioè se un browser diverso da UTF-8 vuole leggere o scrivere, potrà leggere o scrivere correttamente tutti i caratteri supportati da UTF-8 anche se l'utente a un browser vecchio di diversa codifica.

Questo è quel che penso :)
Ps. gli scripts.php di vodafonesms/mms non vanno.