Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it L'avatar di Koji84
    Registrato dal
    Sep 2006
    Messaggi
    31

    utf8_encode / decode comportamento bizzarro

    mi trovo in una strana situazione, utilizzo php per codificare (ed in un secondo momento decodificare) delle stringhe prese da database. queste stringhe poi vengono lette da un flash che a sua volta le manda a un JS...insomma si fanno un bel giro.
    per evitare problemi uso la funzione di php utf8_encode. e fino a qui tutto bene.
    il problema mi è sorto con alcune lettere, quelle con l'accento diacritico, che non tornano più come prima.

    facendo la prova elementare
    echo utf8_decode(utf8_encode("ō"));
    su schermo dovrebbe stamparmi nuovamente la ō ed invece tira fuori un altro simbolo, ovvero la Å

    allora ho pensato di fare una funzione che la sostituisca con il suo corrispettivo in utf8 ( &#333 ) ...ma così facendo il carattere viene storpiato attraverso i passaggi che ho elencato poco sopra.

    l'altra soluzione che mi è venuta in mente e cercare di scoprire quali simboli, se sottoposti al utf8_decode danno il carattere di mio interesse e sostituirli con quelli...questa sarebbe la soluzione migliore.... ma temo che non sia possibile scoprirlo.

    non so cosa fare. avete qualche suggerimento? è già capitato a qualcun altro?
    Grazie.

  2. #2
    che DTD usi nella pagine?

    mi puoi postare tutta l'intestazione del output (x)html, non il php o altre cose.
    intendo dal primo carattere della pagina fino all'inizio del <body>, quindi dtd, e tutto quello che sta nell'head.
    http://www.trustweb.it - Web Development - Design 2D/3D - SEO & SEM

    Twitter http://twitter.com/#!/TrustWeb
    LinkedIn http://it.linkedin.com/in/trustweb

  3. #3
    Utente di HTML.it L'avatar di Koji84
    Registrato dal
    Sep 2006
    Messaggi
    31
    Originariamente inviato da MicheleWT
    che DTD usi nella pagine?
    normalmente uso xhtml1-strict.dtd con
    <meta http-equiv='content-type' content='text/html; charset=iso-8859-1' />
    <meta name='language' content='ita' scheme='RFC1766' />
    ma quando ho visto che non funzionava ho fatto un esperimento (quello che dicevo sopra) senza specificare nulla...e il risultato non cambia

    codice:
    <html lang="">
    	<head>
    		<meta http-equiv="content-type" content="text/html; charset=">
    		<title>prova</title>
    	</head>
    	<body>
    <?php
    echo utf8_decode(utf8_encode("ō"));
    ?>
    	</body>
    </html>
    oltretutto il problema non si verifica con altri tipi di accenti...come i circonflessi, gli acuti, i gravi o anche con i simboli...solo con le lettere con accento diacritico. se fosse colpa della a codifica sbagliata non dovrebbe darmi qualche problema anche con gli altri?

  4. #4
    no, mi stampi il sorgente di TUTTA la pagina fino al <BODY>?
    http://www.trustweb.it - Web Development - Design 2D/3D - SEO & SEM

    Twitter http://twitter.com/#!/TrustWeb
    LinkedIn http://it.linkedin.com/in/trustweb

  5. #5
    Utente di HTML.it L'avatar di Koji84
    Registrato dal
    Sep 2006
    Messaggi
    31
    Originariamente inviato da MicheleWT
    no, mi stampi il sorgente di TUTTA la pagina fino al <BODY>?
    la pagina originale non possiede il body, perchè passo i valori direttamente da php a flash. non credo che flash subisca gli effetti del contesto del html. cmq l'errore si verifica anche nella pagina di prova che ho messo li sopra.

    nel php ho messo l'intestazione
    Codice PHP:
    header("Content-type:text/html; charset=utf-8"); 
    comunque se può servire, l'intestazione della pagina che contiene flash è questo
    codice:
    <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
    <html xmlns='http://www.w3.org/1999/xhtml' xml:lang='it' lang='it'>
    <head>
    <title>Home</title>
    <meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1' />
    <meta name='language' content='ita' scheme='RFC1766' />
    </head>
    ti ringrazio per l'interessamento

  6. #6
    se tu stampi il lavore delle variabili nella pagina php te le da corrette e poi una volta in flash viene fuori l'errore?
    http://www.trustweb.it - Web Development - Design 2D/3D - SEO & SEM

    Twitter http://twitter.com/#!/TrustWeb
    LinkedIn http://it.linkedin.com/in/trustweb

  7. #7
    Utente di HTML.it L'avatar di Koji84
    Registrato dal
    Sep 2006
    Messaggi
    31
    Originariamente inviato da MicheleWT
    se tu stampi il lavore delle variabili nella pagina php te le da corrette e poi una volta in flash viene fuori l'errore?
    lo ho pensato anche io subito, ecco perchè ho provato a farlo con la pagina di prova in cui stampo semplicemente il carattere senza avere nulla intorno, ne flash ne altro.
    se provi la pagina di cui ho passato il codice ti accorgi che l'errore si verifica...e non c'è flash.

  8. #8
    però quella pagina non ha codifica, no?
    http://www.trustweb.it - Web Development - Design 2D/3D - SEO & SEM

    Twitter http://twitter.com/#!/TrustWeb
    LinkedIn http://it.linkedin.com/in/trustweb

  9. #9
    Utente di HTML.it L'avatar di Koji84
    Registrato dal
    Sep 2006
    Messaggi
    31
    Originariamente inviato da MicheleWT
    però quella pagina non ha codifica, no?
    no infatti, quindi dovrebbe tenere quella di default del browser. comunque anche mettendo ISO-8859-1 e UTF8 non ci sono differenze

  10. #10
    nel sorgente html che carattere è stato stampato?
    http://www.trustweb.it - Web Development - Design 2D/3D - SEO & SEM

    Twitter http://twitter.com/#!/TrustWeb
    LinkedIn http://it.linkedin.com/in/trustweb

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.