Dans la requête SQL suivante en utilisant la classe PreparedStatement
:Comment gérer les caractères spéciaux dans un Java PrepareStatement?
String query_descrip = "insert into timitemdescription (itemkey, languageid, longdesc, shortdesc) values (?, 1033, ?,?)";
PreparedStatement pstmt2 = con.prepareStatement(query_descrip);
pstmt2.setInt(1, rs4);
pstmt2.setString(2, itemdescription);
pstmt2.setString(3, itemdescription.substring(0,39));
pstmt2.executeUpdate();
Je reçois parfois des apostrophes et des guillemets simples et doubles dans mes descriptions de poste. par exemple, mon dernier problème avec un article est un "moniteur Planar 22." Bien sûr, la chaîne a été mal interprétée et a pensé que la valeur de description était juste "Planar 22" Quelle est la meilleure façon de gérer les caractères spéciaux dans une chaîne
J'ai lu que certaines personnes utilisaient regex, mais elles semblaient être spécifiques au cas par cas.Une autre façon de travailler est de lire le tableau de caractères caractère par caractère.
UPDDATE Après quelques tests plus approfondis, il s'est avéré qu'il y avait plus de problèmes dans mon code, mais aussi un problème d'encodage d'URL. étant peuplé par le code jsp, il essaierait de déplacer le champ de description vers un formulaire en ligne, il le tronque sur le formulaire plutôt que sur la requête. jTDS a également corrigé le problème de réception des caractères spéciaux. Parce que jTDS est un pot, il a également aidé à éviter de redémarrer la machine. Je vais attribuer le fil JTDS la prime puisque c'est ce que j'ai partiellement utilisé.
merci à l'avance
Quel pilote et base de données JDBC utilisez-vous? – Yishai
J'utilise MS SQL Server 2000 Pilote pour JDBC et SQL Server 2005 – phill
pourquoi ma question est downvoted? – phill