Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    5

    DB2 vs lettere accentate

    Salve,

    L'aggiunta di un record in una tabella DB2 su As400, utilizzando un Driver ODBC iSeries Access for Linux, non funziona quando in un campo di tipo VARCHAR vanno ad essere inserite lettere accentate (à è ì ò ù). Nel log appare questo messaggio :

    [IBM][iSeries Access ODBC Driver][DB2 UDB]SQL0104 - Token , SQL state 37000 in SQLExecDirect ....

    Avete suggerimenti da darmi? Grazie comunque.

  2. #2
    la collation/charset della tabella/campo/database qual'è?

    e il charset della connesione?

    considera che se ricevi dal browser roba in utf8, sia perché arriva tramite javascript sia perché la pagina che hai ha gli header che gli dicono di lavorare con utf8, ma la connessione è in latin1 ... i 2/3 byte dei caratteri arrivano come caratteri singoli (ergo 2/3 caratteri) e non come un carattere unico formato da 2/3 byte

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    16
    prova a mettere i record facendoli passare prima per htmlentities()


  4. #4
    Originariamente inviato da kvasir
    prova a mettere i record facendoli passare prima per htmlentities()

    il problema non cambia

    innanzi tutto deve sapere il charset della pagina perché se è in UTF8 e a htmlentities non glielo si di ce si ci ritrova ad avere le singole parti del carattere (i 2/3 byte) encodate separatamente

    inoltre, usando UTF8, non è molto utile usare le entità html

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    5
    Per la tabella e la collection, ritengo che sia più opportuno parlare di CCSID e non di charset. Nel mio caso, il CCSID è 280 (Italiano).
    Sul sorgente è specificato <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">.

  6. #6
    scusami, ma il "Coded Character Set Identifier (CCSID)" non so se sia corretto paragonarlo al charset, infatti contiene parecchie informazioni aggiuntive che servono a gestire la localizzazione in maniera propria

    In ogni caso, è strano che tu abbia problemi con i caratteri accentati se usi la latin1 (ISO-8859-1) come charset

    A questo punto potrebbe tornarti comodo usare le htmlentities, comunque potresti postare la query che vai ad eseguire? comprensiva di variabili sostituite cosi da vedere se magari c'è qualche errori ... con le lettere accentate dentro

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    5
    dunque, qui di seguito ho riportato il piccolo esempio che sono andato a realizzare per tentare di risolvere questa anomalia:

    abc.php

    <?php
    session_start();
    ?>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Caratteri accentati</title>
    </head>
    <body>
    <form action=abc_post.php method=post name="infot">
    <table cellpadding="0" cellspacing="0" border="0" bgcolor="#E6E6FA" width="50%">
    <tr align="center" valign="middle">
    <td align="center" valign="middle"><textarea name="motivazione" rows="4" cols="32">là sù c'è il comò, proprio lì</textarea></td>
    </tr>
    <tr>
    <td align="center"><input type="image" name="avanti" src="www/img/forward.png" alt="avanti"></td>
    </tr>
    </table>
    </form>
    </body>
    </html>

    abc_post.php

    <?php
    session_start();
    $campo = $_REQUEST['motivazione'];

    $ASdbname="AS400";
    $ASdbuser="USER";
    $ASdbpwd="PASSWORD";
    $ASdb=odbc_connect($ASdbname,$ASdbuser,$ASdbpwd) or die ("error");
    $sqlString = "INSERT INTO LIBRERIA.ACCENTI (FLD01) VALUES('" . $campo . "')";
    odbc_exec($ASdb, $sqlString);
    odbc_close ($ASdb);
    ?>

  8. #8
    Più trovato una soluzione ??

    Sono nella stessa situazione, cercando di fare un insert su un DB2 tramite i driver iSeries se la query contiene un carattere accentato questa viene rifiutata..

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.