2016-06-24 2 views
0

Ich habe eine mehrsprachige Webanwendung in JavaScript geschrieben, die sich einem JAVA-Servlet nähert, das wiederum Zugriff auf eine MySQL-Datenbank hat.Warum fügt MySQL Strings mit semitischen Sprachen ein einfaches Anführungszeichen zu?

Alles scheint OK zu funktionieren, außer wenn die verwendete Sprache eine semitische Sprache ist (arabisch, persisch, hebräisch). In diesem Fall wird auf wundersame Weise am Anfang (oder am Ende) ein Doppel-Ganzzeichen hinzugefügt an es) der Schnur.

Das Servlet druckt jedes Mal auf die Konsole, wenn es empfangen wird, und dort sieht alles OK aus.

Wenn ich die Datenbank anschaue, wird ein Anführungszeichen hinzugefügt.

So bin ich geneigt zu dingen, dass das Problem zwischen dem Servlet und MySQL ist.

Dies ist bei keinem anderen Zeichensatz der Fall.

Hat jemand eine Idee warum und wie es richtig funktioniert?

Vielen Dank im Voraus.

+0

Sonderbare Zeichen? Überprüfen Sie die Zeichencodierungen an den drei Stellen. –

+0

Nein, es gibt keine seltsamen Zeichen, sondern nur die Hinzufügung eines doppelten Zitats. Dies beschädigt vollständig den JSON, der an das JavaScript zurückgegeben wird. – FDavidov

+0

Ich meinte unerwartet. Überprüfen Sie die Zeichencodierungen an den drei Stellen. –

Antwort

1

Es scheint, dass Ihre Antwort here

und diese java ein mit einem Beispiel ist:

String unicode= "?useUnicode=yes&characterEncoding=UTF-8"; 
con = DriverManager.getConnection(url+db+unicode,"root",""); 

Überprüfen Sie auch die MySQL-Handbuch Seite mit dem Titel Character Sets and Collations Supported by MySQL.

Fühlen Sie sich frei, diese Antwort zu downvote. Ich bin froh, es auch zu löschen.

+0

Es scheint, dass die Einstellung 'default-character-set = utf8' in der Datei my.cnf den Trick gemacht hat. Noch testen, aber es sieht soweit OK aus. Danke @Drew für deine Hilfe. – FDavidov

Verwandte Themen