Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Caratteri speciali, flash e file txt

    Ciao ragazzi.

    Ho una pagina in flash che si occupa di recuperare dei file txt che cotengono ovviamente del testo. Questi file si possono modificare direttamente dal web, quindi ho fatto una funzione con php che permette la scrittura su questi (ovviamente settati a 777).

    In questo modo però trovo un problema con la codifica.
    Se io ad esempio scrivo:

    Questa è una prova
    nel file viene effettivamente scritto "Questa è una prova", ma flash non riconosce quella è. Ho risolto questo problema usando questo sistema:

    Codice PHP:
    utf8_encode($stringa); 
    In questo modo flash mi riconosce quella "è" e la fa visualizzare correttamente. Ora però riscontro un'altro problema: mettiamo che nel file, io voglio scrivere anche il simbolo €, come devo fare? Usando la stessa funzione e aprendo il file una volta scritto con php mi appare un simbolo, sia nel file txt sia nel file flash...come posso risolvere?

    Se modifico manualmente il file txt, levando il quadratino e inserendo appunto €, il file flash lo recupera e lo visualizza perfettamente.

    Avete qualche possibile soluzione?
    Realizzazione script php/mysql, per info:
    delrossofabio@gmail.com

    http://forum.html.it/forum/showthread.php?s=&threadid=1478962

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    209
    € non è un carattere contemplato dall'uft8, in una normale pagina HTML caratteri come € e le lettere accentate è bene sostituirli con le corrispondenti entità HTML (che in teoria anche Flash riconosce ma non ne sono sicuro).

    Prova a usare str_replace per trasformare € nella sua entità HTML € prima di usare utf8_encode;
    Codice PHP:
    $stringa=str_replace("€","€",$stringa);
    utf8_encode($stringa); 
    Se vuoi codificare tutte le entità HTML usa html_entities però tieni presente che codifica anche i simboli < e >, per cui se devi scrivere codice html i tag vengono "distrutti":
    Codice PHP:
    $stringa=html_entities($stringa);
    utf8_encode($stringa); 

  3. #3
    Originariamente inviato da Walessio
    € non è un carattere contemplato dall'uft8, in una normale pagina HTML caratteri come € e le lettere accentate è bene sostituirli con le corrispondenti entità HTML (che in teoria anche Flash riconosce ma non ne sono sicuro).

    Prova a usare str_replace per trasformare € nella sua entità HTML &euro; prima di usare utf8_encode;
    Codice PHP:
    $stringa=str_replace("€","&euro;",$stringa);
    utf8_encode($stringa); 
    Se vuoi codificare tutte le entità HTML usa html_entities però tieni presente che codifica anche i simboli < e >, per cui se devi scrivere codice html i tag vengono "distrutti":
    Codice PHP:
    $stringa=html_entities($stringa);
    utf8_encode($stringa); 
    Ciao!

    Grazie per avermi risposto!
    Ho provato come dici tu, però se scrivo &euro; flash non mi riconosce la scrittura è mi stampa proprio "&euro;"....stessa cosa se per esempio metto &egrave; o altro...

    La cosa però più strana è che così non li prende, mentre se metto "€" oppure "è" li riconosce
    Realizzazione script php/mysql, per info:
    delrossofabio@gmail.com

    http://forum.html.it/forum/showthread.php?s=&threadid=1478962

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    209
    Mi sfugge qualcosa, non volevi che stampasse la "€"?
    E come mai ora dici che inserendo direttamente il carattere funzione mentre prima no...?

  5. #5
    Originariamente inviato da Walessio
    Mi sfugge qualcosa, non volevi che stampasse la "€"?
    E come mai ora dici che inserendo direttamente il carattere funzione mentre prima no...?
    Non lo so mi pare strano anche a me....Io voglio che flash recuperando appunto questo file di testo esterno stampasse quella "€". Questo testo però viene modificato tramite una textbox in una mia pagina. Il problema è che appunto inserendo un testo qualsiasi (senza caratteri speciali), viene riconosciuto e stampato correttamente, appena invece inserisco un carattere tipo "€" oppure "à", anche se nel file di testo creato realmente mi stampa "€", flash non lo riconosce mettendo un simboletto (un rettangolo...). Poi ho provato a creare manualmente un file txt e scriverci "€", ma in questo modo flash visualizza il carattere correttamente...come mai?
    Realizzazione script php/mysql, per info:
    delrossofabio@gmail.com

    http://forum.html.it/forum/showthread.php?s=&threadid=1478962

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    209
    Il file di testo viene modificato tramite una textbox in una pagina HTML, giusto?
    Poi il form viene inviato a un file php che scrive il file di testo, giusto?
    Il problema è che il carattere speciale viene "sporcato" in una delle fasi di questo passaggio.
    o nel passaggio dalla pagina di modifica alla pagina di salvataggio.
    o nel momento in cui la pagina scrive il carattere sul file di testo.
    Inserisci nella pagina di salvataggio una stampa dell'array $_POST (o $_GET) e leggi IL CODICE HTML prodotto, se € non viene riconosciuto, il problema è nella prima fase (verifica se è così, poi ti spiego)
    Se va tutto bene, invece, nel file di salvataggio devi inserire quei codici che ti ho postato prima e poi, verifica che nel txt, al posto di € ci sia
    Codice PHP:
    &euro
    .

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 © 2025 vBulletin Solutions, Inc. All rights reserved.