Newsgroup: it.comp.www.php
Titolo: Re: Problemi con charset

 Ora in un modulo di
ti sei addormentato sulla tastiera?

 Ora in un modulo di
Dobbiamo completare noi la domanda oltre che dare la risposta? :)
Ciao,
luigi
-- 
/
+--[Luigi Rosa]--
\
Light travels faster than sound.
This is why some people appear bright until you hear them speak.

Ciao a tutti.
Sono alle prese con un'applicazione che utilizza
come charset predefinito l'UTF8. Quindi parliamo
sia degli headers inviati al browser, sia la codifica
dei file sorgenti, sia il database usano l'UTF8.
Tutte i moduli dell'applicazione funzionano a dovere,
tranne un modulo che emula una webmail.
Stamane mi scontro con due anomalie che mi
lasciano alcunto perplesso.
1. *** anomalia ***
Il campo from contiene il nome del mittente che
è Lòpez ("o" acute). Con il semplice output
visualizzo L?opez.
Attraverso:
$enc = mb_detect_encoding($from);
ottengo che la stringa è già condificata UTF8.
Mah...e quindi ?
Se provo:
mb_convert_encoding($from, "UTF-8")
mi riporta Lpez. Ciaè tronca la "o".
Se provo: mb_convert_encoding($from, "UTF-8",$enc);
mi riporta un'altro risultato ancora.
Se uso come riferimento il charset indicato nel
content-type e faccio la conversione non ottengo
comunque risultati corretti.
Insomma non riesco a capire come trattare decentemente
questi casi.
Ovviamente, se cambio la codifica al browser va tutto a
meraviglia.
2. *** scenario ***
Problema analogo. Devo mandare in output il testo della
mail. Mail formattata in HTML.
Benone. Se la mando in output semplicemente, i caratteri
accentati vanno a farsi benedire.
Se loa converto usando come riferimento il charset
indicato nel content-type ottengo lo stesso risultato.
Allora provo di nuovo:
$enc = mb_detect_encoding($from);
ottengo che la stringa è già condificata UTF8.
Anche qui è già UTF-8. A parte che dovrebbe essere
ISO-8859-1, anche fosse UTF-8, allora dovrebbe
visualizzarla correttamente no ?
Ma qui viene il bello. Se provo a convertire
una stringa UTF-8 in UTF-8 (che non ha senso IMHO):
mb_convert_encoding($body, "UTF-8");
finalmente ottengo un body formattato come dio comanda.
In conclusione...o:
1. le mb_string function funzionano un po al c@##o
2. non ho compreso a fondo come funzionano le mb_string
Che ne pensate ?
Grazie e a presto.
Beppe

 ti sei addormentato sulla tastiera?
lol, scusate ma è partito il post involontariamente.
L'ho appena ripostato !!! :P

 lasciano alcunto perplesso.
Ti stai scontrando con il fatto che la mail e le pagine web seguono regole di
encoding (e non solo di quello) nettamente differenti.
Innanzi tutto, gli header dei messaggi DOVREBBERO essere strettamente a 7 bit
con un encoding particolare per il valore del header. RFC 2047 descrive
l'encoding degli header, probabilmente ci sono libreria PHP che decodificano
quei valori.
Il testo delle mail puo' essere codificato in maniera diversa, anzi puo'
contenere parti codificate ciascuna in una maniera specifica. Guardati tutto il
discorso della codifica MIME dei messaggi SMTP. Buona fortuna.
Anche in questo caso probabilmente esistono librerie PHP che alleviano i mal di
testa.
Ciao,
luigi
-- 
/
+--[Luigi Rosa]--
\
Passion for the work doesn't come out of a crackerjack box. An MCSE or any
"Certification" from a vendor, is just a manufacturers way of saying you
have digested their propaganda. If you are looking to get rich quick while
only working a few hours a week try No money down real estate. It should
come as no surprise that the people who went for these courses are now
getting burned. The schools were unscrupulous but then again so were the
majority of their students.
Both parties were trying to sell sows ears as silk purses.
    --Post su 
slashdot.org

 testa.
Ad essere sincero sto usando Zend_Mail per questo tipo
di operazione e devo dire che funge bene. Ma poi il resto
dell'lavoro me lo devo fare a mano. Sono andato avanti
piuttosto bene ma questi cazzo di charset mi mandano
in bestia. Allo stato attuale sono l'unico problema che
devo ancora snocciolare.
Ora apro una petizione online: voglio tutte le mail quoted-
printable :D
Grazie della risposta
  * (e scusate gli enormi strafalcioni sgrammaticali del 
prec.post
)
Beppe

 printable :D
Sei ancora troppo bravo: per me se non e' scrivibile in ASCII puro non val la
pena di scriverlo! :)
Ciao,
luigi
-- 
/
+--[Luigi Rosa]--
\
Mathematicians do it in theory.

 pena di scriverlo! :)
:)
Beppe

 testa.
http://www.phpclasses.org/browse/package/3169.html
qualcuno sa quando _aggironano_ il php e correggono quel fottutissimo
baco di openssl ???
mi sembra che in php si siano messi sugli allori, non e' che ci sono
trattative di vendita ?