Visualizzazione dei risultati da 1 a 6 su 6

Discussione: php e utf-8?

  1. #1

    php e utf-8?

    ciao ragazzi.
    Ma forse il php non lavora bene con utf-8?

    per esempio anche una funzione così semplice

    Codice PHP:
    function tagliaStringa($stringa$max_length){ 
         if (
    strlen($stringa) > $max_length) { 
             
    $stringa substr($stringa,0,$max_length); 
             
    $stringa .= '...'
         }
      return 
    $stringa

    con caratteri russi e cinesi mi crea i piccoli "?". Se no lo processo, invece, funziona correttamente

    sapete che cosa succede?

    grazie mille!

  2. #2
    php funziona bene con utf-8, come codifichi la pagina html? prendi i dati dal database, che charset usa mysql?
    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
    beh, in realtà ha ragione zoc substr con caratteri multibyte può dare risultati inaspettati...

    zoc per lavorare in utf-8 ti consiglio l'estensione mb_strings di php (http://php.net/manual/en/book.mbstring.php) in questo modo utilizzerai la funzione mb_substr che dovrebbe risolvere i tuoi problemi.

    « Se nella prima mezz'ora non capisci chi è il pollo, allora il pollo sei tu. » [Thomas "Amarillo Slim" Preston, campione del mondo di poker]

  4. #4
    Mah io non ho nessun tipo di problema, basta sapere cosa si sta facendo e perché.

    E' importante il charset nelle pagine html in output e ho esperienza di qualche scocciatura su mysql, ma non è una questione di php.
    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 Laxus
    Registrato dal
    Oct 2010
    Messaggi
    251
    ma non è una questione di php.
    php non supporta nativamente utf8, almeno fino (speriamo) alla 6°. (esempio: strlen conta i byte, non i caratteri!)
    se si vuole gestire caratteri multibyte, allora utilizzare l'estensione mbstring è d'obbligo.

  6. #6
    grazie ragazzi,

    la mia pagina è codificata
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

    e anche il mysql e la collation ecc... ma guarda ti dico che tutto funziona a perfezione, solo che nelle funzioni dove cé un elaborazione tipo quella che vi ho postato, da dei problemi.
    Provo a vedere la storia dei multibyte.

    grazie!

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.