Visualizzazione dei risultati da 1 a 5 su 5

Discussione: convert to utf8

  1. #1

    [mysql]convert to utf8

    devo fare l'importazione di una mole di dati da mysql4 al 5...

    io selziono da PMA l'esportazione della tabella interessata e la esporto in un file .sql, poi quel file voglio inserire le righe di quel file nella nuova tabella. Il problema è che non appena incontra un carattere speciale mi tronca il testo, penso sia dovuto al charset utilizzato...


    Così sto facendo il tutto da php, ossia mi scrivo tutto in un file convertendo il charset in utf8, ma mi dà errore sulla query:

    codice:
    SELECT cat_id, title, subtitle, CONVERT(body USING utf8) AS body, datetime, ts FROM x_news


    come lo posso fare?



    Grazie

    p.s. l'errore è: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'USING utf8) AS body, datetime, ts FROM x_news LIMIT 0, 30' at l
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  2. #2
    visto che da mysql non ne venivo a capo ho fatto una cosa del genere: praticamente da php ho fatto uno script che mi mette le query in un file di testo con caratteri utf8 e la cosa è migliorata, nel senso che ora non mi tronca più le frasi al carattere strano, ma al suo posto mi ritrovo comunque caratteri stranissimi del tipo: Presto sarà disponibile...


    il codice che ho usato per comporre il txt è seplicemente questo:
    Codice PHP:
    $sql="SELECT cat_id, title, subtitle, body, datetime, ts FROM x_news";
    $res=mysql_query($sql);
    $handle=fopen("export/export.sql","w+");

    while (
    $row=mysql_fetch_assoc($res))
    {
        
    $s="INSERT INTO et_news SET NEWS_LINGUA='it', CATEGORIA_ID='".$row["cat_id"]."', TITOLO='".mysql_real_escape_string($row["title"])."', SOTTOTITOLO='".mysql_real_escape_string($row["subtitle"])."', DESCRIZIONE='".mysql_real_escape_string(utf8_encode($row["body"]))."', NEWS_INIZIO='".$row["datetime"]."', REVISIONE_DATA='".$row["ts"]."';\n";
        
    fwrite($handle,$s);
    }
    fclose($handle); 
    idee per ovviare a quel "piccolo" inconveniente?
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  3. #3
    ragazzi per favore è questione di vita o di morte


    non avete qualche idea in merito o un qualche tutorial o guida che spieghi qualcosa in merito? perché io oltre alle funzioni utf8 e i vari giochetti con htmlentities e simili non so più da che parte guardare.

    Avrei anche pensato ad una cosa del genere:
    praticamente, ho visto che facendo l'htmlentities me li inserisce correttamente nel db, percò mi converte, giustamente, anche tutti i tag html e la cosa non mi garba, così sto provando a costruirmi una preg che mi prenda tutto il testo che NON E' tag html, ma non ci riesco


    la mia preg dovrebbe funzionare più o meno così:
    Codice PHP:
    preg_replace("tutto_ciò_che_non_è_un_tag"htmlentities(di_quello_che_ha_trovato), $str
    il punto è che le sto provando tutte, ma non trovo il modo di dirgli cosa deve andare a prendere
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  4. #4
    dunque...

    sto facendo altre prove, e ho aggiunto al ciclo:
    Codice PHP:
    $arr=file("export.sql");
    $i=1;
    foreach (
    $arr as $k=>$v)
    {
        echo 
    mb_detect_encoding($v);
        echo 
    "
    \n"
    ;

    e l'echo dell'encoding mi dà a volta ASCII e a volte UTF-8...perché? come faccio a far sì che siano tutte uguali?
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  5. #5
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

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.