Pagina 1 di 7 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 65
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    49

    un chiarimento finale su UTF-8 :: confusione o verità

    Ciao a tutti...
    finalmente dopo aver letto e riletto i post qui sul forum (che mi sono stati utilissimi!!!) ho sistemato il mio db:

    1) Mysql in utf8
    2) tabelle in utf8
    3) pagine con header UTF-8

    Funziona tutto alla grande... sia i dati inseriti nel DB da client php e poi prelevati e visualizzati sulla pagina tutto corretto accentate comprese, sia per il testo scritto sulla pagina html senza entities, ma ho la paura che magari qualche carattere in qualche browser non si legga correttamente.. può accadere davvero? :master:

    In base a ciò che ho letto qui sul FORUM alla fine mi sono confuso un pò:
    c'e' sempre qualcuno che dice di no, e qualcuno invece di usare le entities anche se la pagina è UTF per codificare le accentate e caratteri speciali come

    Codice PHP:
    ° € è à é ì ò ù 
    E' davvero necessario o se tutto è davvero conforme UTF va sicuro e tranq?
    Del resto se scrivo nel DB in UTF non posso codificare le accentate con htmlentities() altrimenti mi sballa tutto quando prelevo da DB e la pagina UTF cerca di visualizzare il contenuto sbagliando! Giusto? :master:

    Dovrei forse creare una funzione che mi recuperi i dati dal DB e con un replace e cambiare almeno le accentate in visualizzazione.... ma è davvero necessario?

    E poi... se per questione di sicurezza codifico i caratteri speciali pericolosi come apici, virgolette, ecc.. con
    Codice PHP:
    $var htmlspecialchars($var ENT_QUOTES); 
    è utile o superfluo aggiungere scrivendo i dati nel DB
    Codice PHP:
    mysql_real_escape_string 
    visto che appunto apici e virglolette risultano convertiti?
    Esempio: WEEK-END D'INVERNO
    Codice PHP:
    WEEK-END D\'INVERNO 

    Grz a tutti.. e a chi partecipa al post!
    ..............
    Conrad Bland
    ..............

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    49

    aggiuntina ...

    volevo anche aggiungere che, facendo u giro sul web, per esempio sul sito ADOBE...
    Tutto in UTF8 ma usano le entities per le accentate ... come mai se in teoria tutto è settato bene?

    IDEM per il sito APPLE ... UTF8 ma con le accentate convertite in entities...

    Da qui i dubbi su questa cosa...
    Quindi, anche se ho tutto corretto, e in visualizzazione non vedo errori, dovrei davvero convertire i dati in lettura con le entities html corrispondenti?

    Meglio metterle su DB o convertirle solo in lettura e lasciare su DB UTF8 puro?

    Dubbi su dubbi!
    ..............
    Conrad Bland
    ..............

  3. #3
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027

    Re: aggiuntina ...

    Originariamente inviato da bland
    volevo anche aggiungere che, facendo u giro sul web, per esempio sul sito ADOBE...
    Tutto in UTF8 ma usano le entities per le accentate ... come mai se in teoria tutto è settato bene?

    IDEM per il sito APPLE ... UTF8 ma con le accentate convertite in entities...

    Da qui i dubbi su questa cosa...
    Quindi, anche se ho tutto corretto, e in visualizzazione non vedo errori, dovrei davvero convertire i dati in lettura con le entities html corrispondenti?

    Meglio metterle su DB o convertirle solo in lettura e lasciare su DB UTF8 puro?

    Dubbi su dubbi!
    io le accentate le lascio cosi come sono e non ho mai avuto problemi, per quanto riguarda comunque tutti i tuoi questiti, sul db ci deve essere il dato cosi com'è, e non codificato, perchè se domani vuoi usare i dati in altro modo (ad esempio per farne un pdf) dovresti riconvertire tutto.

    Sinceramente mi hai messo un dubbio parlando di siti cosi importanti, ma forse non è detto che facciano giusto

    ciao

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    49

    mmmmmmmmmmm

    gia... infatti per quello ho il dubbio..
    magari si lasciano cosi come sono nel DB e si convertono solo per la visualizzazione...
    Oppure è solo una scelta...

    Chi può dire di più?? :master:
    ..............
    Conrad Bland
    ..............

  5. #5
    guarda, le entities servono a evitare problemi durante le conversioni dei database o gli interfacciamenti con altri problemi.

    Molto spesso magari c'è l'ho script X che estrae dal database, dai feed rss, xml, o html stesso dei dati e se li ritrova in un modo e magari non possono essere convertiti cosi linearmente

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    49
    quindi mi dici che sarebbe meglio convertire con le entities nel db i caratteri speciali?

    Beh cosi avrei il anche il problema però, che estraendo alcuni campi del DB (testo della news esempio) devo contare i caratteri e troncare alcune frasi per il classico (... contina) se ho le entities invece delle semplici accentate, dovrei creare una funzione che nel contare i caratteri della frase deve tenere conto della lunghezza anche delle entities, quindi invece di

    codice:
    à
    quindi 8 caratteri dovrei contarne di 1 solo ...

    Riepilogando:
    - nel db metto le frasi con le entities
    - nell'estrarre convertire il tutto se serve come nell'esempio che ho fatto, altrimenti si può lasciare cosi com'e'...

    E c'e' sempre il problema che se codifico le accentate con htmlentities() sul DB che è in UTF8 mi sballa tutto in quanto esegue una codifica di quello che registra, tipo
    Ho provato proprio adesso e una "è" diventa in visualizzazione
    codice:
    è
    dovrei poi usare un'altra funzione per visualizzare correttamente sulla pagina?
    Con cosa?

    .................

    Ne approfitto per chiedere anche se, è meglio mettere

    Codice PHP:
    header('Content-type: text/html;charset=utf-8'); 
    oppure

    codice:
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    o tutti e 2?
    ..............
    Conrad Bland
    ..............

  7. #7
    Originariamente inviato da bland


    Ne approfitto per chiedere anche se, è meglio mettere

    Codice PHP:
    header('Content-type: text/html;charset=utf-8'); 
    oppure

    codice:
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    o tutti e 2?
    meglio abbondare

    per quanto riguarda le entities se si usa utf-8 non dovrebbero
    esserci problemi di sorta e non ti complichi la vita con continua.... anche eventualmente nel passaggio db xml
    Per quanto mi riguarda non uso le entities.

    L'unico incubo è che sebbene nella visualizzazione
    non ci siano problemi nel Db vedo i soliti caratteri
    strani è se qc mi spiega perchè ..........

    insomma c'è sempre da tribolare

    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  8. #8
    io ti sconsiglio di tagliare, conviene più un campo che contiene il testo già tagliato o il sunto

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    49
    beh è per metterlo in un box laterale... in colonna.. e dato che non li scrivo io ma il cliente con un client, dovrei spiegargli di non superare x righe/caratteri per fare un sunto... è gia' difficile spiegargli come funziona la posta! VVoVe:

    per il resto nessun suggerimento su cosa è meglio o no?
    ..............
    Conrad Bland
    ..............

  10. #10
    Originariamente inviato da bland
    beh è per metterlo in un box laterale... in colonna.. e dato che non li scrivo io ma il cliente con un client, dovrei spiegargli di non superare x righe/caratteri per fare un sunto... è gia' difficile spiegargli come funziona la posta! VVoVe:

    per il resto nessun suggerimento su cosa è meglio o no?
    http://it.php.net/manual/it/function...ity-decode.php

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.