Newsgroup: it.comp.www.php
Titolo: Accentate Malefiche!

Ho uno script che elenca i contenuti della cartella:
***********************
<?php
if ($handle = opendir('/cartella')) {
   echo "Handle della directory: $handle\n";
   echo "File:\n";
   /* Questa č la maniera corretta di eseguire un loop all'interno di una
directory. */
   while (false !== ($file = readdir($handle))) {
       echo "<BR><A HREF=\"\n";
       echo $file;
       echo "\">$file</A>\n";
   }
   closedir($handle);
}
?>
**************************
Lo script funziona bene, ma se il file contiene una lettera accentata, il
link non va.
Come posso risolvere il problema?
Ciao e grz in anticipo

 accentata, il link non va.
Definisci "non va"
-- 
I am what I am, I do what I can
Sei un newbie? Leggi questo 
http://url.repository.biz/go/1
Inviare email con allegati? 
http://url.repository.biz/go/1Z
Cerchi un programmatore PHP/MySQL? 
http://url.repository.biz/go/1Y
L'uomo, conscio di sbagliare, persevera.

> Definisci "non va"
ok! ^_^
Forse l'esempio pratico è la cosa migliore.
File:
casino.doc
casinò.doc
Se provo a scaricare il primo, non c'è problema.
Il download parte e scarica "casino.doc".
Nel secondo caso, il download parte, ma scarica un inesistente "casinò.htm"
che contiene l'errore 404 personalizzato del mio hoster.
Spero di essermi spiegato un pò meglio.. altrimenti.. ci riproverò! ^_^
cià e grz

 Spero di essermi spiegato un pò meglio.. altrimenti.. ci riproverò!
Meglio che ci riprovi.
Posta il codice HTML generato dal tuo script, almeno la parte relativa
al link incriminato. Inoltre ti faccio notare che hai scritto "scarica
un inesistente "casinò.htm"" (NB l'estensione htm).


 un inesistente "casinò.htm"" (NB l'estensione htm).
L'estensione è giusta. Come ho scritto, l'hoster ha personalizzato la pagina
di errore 404. Per cui se richiedi al server una pagino che non esiste, lui
ti restituisce indietro questa pagina htm. Altrimenti secondo me darebbe un
normalissimo 404 page not found.
Cmq, questo è l'output:
<HTML>
<HEAD>
<TITLE>Lista File</TITLE>
</HEAD>
<BODY>
Lista dei File in ".":
<BR><A HREF="
casino.doc
">casino.doc</A>
<BR><A HREF="
casinò.doc
">casinò.doc</A>
</BODY>
</HTML>
Che così ad occhio sembra essere ok, a livello di html, ma probabilmente
quando viene richiesto il file casinò.doc al server, viene fatto nella
maniera sbagliata, perchè lui restituisce un file not found.
Infatti con casino.doc tutto funziona tranquillamente.
Cià e grz

 not found.  Infatti con casino.doc tutto funziona tranquillamente.
prova con:
       echo htmlentities ($file);


>        echo htmlentities ($file);
Già tentato.. ma non va. :-/
cià e grz

Ho notato che se metto negli head:
<meta http-equiv="Content-Type" content="text/html" charset="utf-8">
La "ò" diventa un quadratino illeggibile. Può essere che devo lavorare sul
charset?
cià

 charset?
C'è un modo per sapere con quale charset sono encodati i caratteri sul
server (sto usando altervista)?
cià

Il problema è uguale a questo:
http://groups.google.com/groups?selm=195Z223Z139Z226Y1060167198X10412%40usenet.libero.it
Ma le soluzioni proposte non funzionano.. :-(
cià e grz

 Gi` tentato.. ma non va. :-/
Prova con urlencode.


> Prova con urlencode.
Nada.. cmq continuando a provare e riprovare mi sa che è un problema del
server.
Infatti il problema esce anche con una pagina di html puro come:
<A HREF="casinò.doc">casinò.doc</A>
Quindi mi sa che il php è in quel punto scritto giusto. E' proprio il server
che non digerisce come gli viene consegnata la "ò".
Forse perchè io uso windows e il server gira su linux?
Cià e Grz

ESATTO è come pensavo!
Ho trovato un charset un pò più compatibile, infatti inserendo la linea:
<meta http-equiv="Content-Type" content="text/html" charset="utf-16">
il file viene riconosciuto.
Anche se come "Casin%F2.doc", ma viene scaricato correttamente. Ora mi manca
solo trovare il charset giusto.. se qualcuno ha un suggerimento.. ;-D
Cià e grz

/me si scudiscia prepotentemente.
quello che ho appena scritto non centra niente.
Il %F2 č grazie alla funzione urlencode. Non so perchč in un primo momento
non funzionasse.
Cmq ora il problema rimane lo stesso. Devo trovare la maniera affinchč mi
venga restituito il nome giusto e non con il %F2.
Ciŕ e grz

 affinchh mi venga restituito il nome giusto e non con il %F2.
%F2 e' giusto. DEVE essere codificato altrimenti il web server potrebbe
non essere in grado di trovare il file (come avviene attualmente).


 non essere in grado di trovare il file (come avviene attualmente).
Già.. esattamente come i %20 per gli spazi.. però questi ultimi il browser
li riconverte in spazi quando salva il file.. i %F2 invece no!
IE li tronca, ed Opera li trascrive tali e quali.
Però così almeno funziona.. anche se dovrò trovare un'alternativa, perchè le
accentate sono *ahimè* fondamentali!
cià