l'environnement Mysql suit:de caractères dans une base MySQL
character_set_database="big5"
Et quand j'envoie une requête SQL qui contient tranditional chinois
(tels que « select * from a où name = « 中«)
de jdbc à la base de données MySQL, il va jeter l'exception suivante:
Illegal mix of collations (big5_chinese_ci,IMPLICIT), (latin1_swedish_ci,COERCIBLE), (latin1_swedish_ci,COERCIBLE) for operation ' IN ''
Comment puis-je résoudre ce problème?
Mais nous devons faire cela entre Oracle et mysql, et quand mon programme obtient les données de Oracle (son codage est ISO-8859-1) et le passe dans l'instruction SQL dans JDBC, il aura un tel problème, mais je ne peux pas changer la collation d'oracle. Comment résoudre ceci? Pourquoi JSP ne peut pas résoudre cela automatiquement?
J'ai essayé de convertir mais les caractères chinois ne peuvent pas être sauvegardés dans le jeu de caractères Latin1. cela peut-il causer le problème?
À quoi servent les classements? – MemoryLeak
donc vous voulez dire cela un problème de réglage de base de données, mais pas parce que l'encodage dans mon code jsp a un problème? – MemoryLeak
Dans votre question, vous ne parliez que de MySQL. Mais, oui, c'est un problème de base de données. Un classement est un ensemble de règles permettant de comparer des caractères dans un jeu de caractères http://dev.mysql.com/doc/refman/5.1/en/charset-general.html Modifiez toutes vos tables afin qu'elles partagent toutes le même classement. C'est seulement nécessaire entre les tables d'interaction, mais mieux vaut prévenir que guérir. –