Frage

Ich habe eine Java-Anwendung decodiert ein UTF-8 kodierten String über den Draht empfangen und es zu einer varchar Spalte in der Datenbank (SQL Server 2000) zu speichern. Ich spare den Datensatz mit JDBC des CallableStatement (die setString Methode Aufruf der Parameter für diese Spalte zu setzen).

Das Problem ist, ich sehe, dass ein bestimmtes String geschrieben wurde, die ASCII-Wert 0 (NUL) enthält. Dies legt nahe, mir, dass SQL Server kann nicht ein bestimmtes Unicode-Zeichen und die JDBC-Treiber darstellen hat mich entschieden, in ASCII-Wert 0, zu ersetzen, obwohl ich falsch sein kann.

  • Hat jemand anderes dieses Problem gestoßen?
  • Sie haben einen Mechanismus ich verwenden kann, die CallableStatement Aufruf verursachen in dieser Situation zum Scheitern verurteilt?

Im Idealfall würde Ich mag, dass Daten gewährleisten haben genau gespeichert, wie angegeben, oder „nicht bestehen schnell“.

Mein Datenbank-Zeichensatz ist Latin1_General_AS_CS.

Vielen Dank im Voraus.

War es hilfreich?

Lösung

Sie müssen 'NVARCHAR' Typen in der Datenbank werden.

Andere Tipps

Nur eine WAG, würde aber mit .setBytes(String parameterName, byte[] x) Trick? Der Byte-Array würde aus myString.getBytes(). Sie könnten unter Verwendung mit verschiedenen Zeichensätzen mit getBytes() auch versuchen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top