Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 37
  1. #1

    Come cambiare caratteri ù, ò, Ã*, è, etc nelle rispettive lettere accentate?

    Ho convertito un forum phpbb in Vbulletin passando da un server in nord europa su un altro server di cui non so dove sia.

    Durante l'export / import dei dati le lettere accentate ed altr icaratteri sono stati sostituiti con questi ù, ò, Ã*, è, etc.

    Ora vorrei sapere come posso con uno script in php/mysql ristabilire le lettere esatte.
    Per avere una idea di cosa parlo osservate il testo di questa discussione:
    http://www.forumlibri.com/forum/showthread.php?t=1929 come vedete il testo è quasi illeggibile:

    Qualcuno di voi c'è giÃ* stato gli anni scorsi? Sapete dirmi com'è organizzata e cosa ci si trova? C'è la possibilitÃ* di conoscere e incontrare qualche scrittore?

    Grazie!

  2. #2
    quelle sono già lettere esatte ^^

    semplicemente quando hai effettuato l'import (o l'export) non hai indicato che la codifica era utf8

  3. #3
    Capito.
    Ma allora posso fare uno script che mi sostituisce quei caratteri con quelli corrispondenti?

    Posso farlo sia per i titoli che sono salvati in variabili VARCHAR che per il testo che è salvato in variabili TEXT?

    Oppure non posso farlo? VVoVe:

  4. #4
    certo che puoi farlo, puoi anche dirgli che la codifica è UTF8 al momento della connessione usando la query

    SET NAMES utf8;

    dopo che fai la connessione e dovresti risolvere il problema

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    37
    Oppure, prima di stampare la variabile, la passi in
    utf8_encode($variabile)


  6. #6
    Sono per il modificare nel DB i caratteri... magari con un ciclo FOR che faccia un UPDATE delle stringhe.

    Avete un esempio di code da usare per fare questo?
    Grazie

  7. #7
    Utente di HTML.it L'avatar di Cerebro
    Registrato dal
    Jan 2005
    Messaggi
    193
    per convertire puoi usare iconv

    Codice PHP:
    echo iconv("ISO-8859-1""UTF-8""This is a test."); 

  8. #8
    Originariamente inviato da Heredoc
    Oppure, prima di stampare la variabile, la passi in
    utf8_encode($variabile)

    Mi allaccio alla discussione avendo provato ad inserirne una simile ed ancora senza risposta
    Io passo l'istruzione dui cui sopra sempre nel modo che qui sotto scriveró e da sempre ho fatto cosí, ma ora i caratteri risultano non essere quelli contenuti nel database di MySQL, dati che ho importati con ODBC e che ho contrallato essere esatti come ß à ü í ú ö l'apostrofo eccetera.
    Questa l'istruzione che inserisco nei files :
    utf8_encode(trim($res[$i]['name']))
    o
    altre come
    utf8_encode($res[$i]['cognome'])
    Ho anche provato a chiedere di settare PHP5 in default_charset con utf8, ma come pensavo la risposta è stata negativa.
    Cosa mi resta da fare ora ?

  9. #9
    Ho provato anche con :
    ".iconv("ISO-8859-1", "UTF-8",$res[$i][('name')])."
    e non va.
    Ci sono sempre dei caratteri che non corrispondono a quelli del database.
    Non è per caso che questa pagina suggerisca qualche cosa ?
    http://www.phpmyadmin.net/home_page/downloads.php
    per tutti i linguaggi con l'uso di utf-8 ?

  10. #10
    Utente di HTML.it L'avatar di Cerebro
    Registrato dal
    Jan 2005
    Messaggi
    193
    Originariamente inviato da lupusonline
    Mi allaccio alla discussione avendo provato ad inserirne una simile ed ancora senza risposta
    Io passo l'istruzione dui cui sopra sempre nel modo che qui sotto scriveró e da sempre ho fatto cosí, ma ora i caratteri risultano non essere quelli contenuti nel database di MySQL, dati che ho importati con ODBC e che ho contrallato essere esatti come ß à ü í ú ö l'apostrofo eccetera.
    Questa l'istruzione che inserisco nei files :
    utf8_encode(trim($res[$i]['name']))
    o
    altre come
    utf8_encode($res[$i]['cognome'])
    Ho anche provato a chiedere di settare PHP5 in default_charset con utf8, ma come pensavo la risposta è stata negativa.
    Cosa mi resta da fare ora ?
    Dove puoi, usa questa funzione per testare se una stringa è utf8:

    Codice PHP:
    function is_utf8($s)
    {
        for (
    $i=0$i<strlen($s); $i++) {
            if (
    ord($s[$i]) < 0x80) continue; # 0bbbbbbb
            
    elseif ((ord($s[$i]) & 0xE0) == 0xC0$n=1# 110bbbbb
            
    elseif ((ord($s[$i]) & 0xF0) == 0xE0$n=2# 1110bbbb
            
    elseif ((ord($s[$i]) & 0xF8) == 0xF0$n=3# 11110bbb
            
    elseif ((ord($s[$i]) & 0xFC) == 0xF8$n=4# 111110bb
            
    elseif ((ord($s[$i]) & 0xFE) == 0xFC$n=5# 1111110b
            
    else return false# Does not match any model
            
    for ($j=0$j<$n$j++) { # n bytes matching 10bbbbbb follow ?
                
    if ((++$i == strlen($s)) || ((ord($s[$i]) & 0xC0) != 0x80))
                return 
    false;
            }
        }
        return 
    true;

    Sopra poi è stato scritto, esegui la query "set names 'utf8'" subito dopo aver stabilito la connessione?

    Poi quando dici "dati che ho importati con ODBC e che ho contrallato essere esatti come ß à ü í ú ö l'apostrofo eccetera.", come li hai controllati?

    E dove vedi che i caratteri non ti appaiono come dovrebbero?

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.