# Sonderzeichen im String codieren



## guytar (20. Feb 2011)

Hallo zusammen

Ich schreibe Strings mit JDBC in eine MySQL Datenbank. Diese Strings könne ja Sonderzeichen wie ', " , \ etc. beinhalten. Im SQL befehl müssen diese Zeichen mit einem Backslash codiert werden also: \', \" , \\

Ich suche eine Funktion, die mir das automatisch macht. Hab sie leider noch nicht gefunden.



```
String text = "Hallo. Wie gehts?";
System.out.println(superFunktion(text));
```


und in der Konsole sollte dann stehen: Hallo\. Wie gehts\?
kennt jemand diese superFunktion?


----------



## musiKk (20. Feb 2011)

Benutze [c]PreparedStatement[/c] mit entsprechenden Platzhaltern, dann übernimmt der JDBC-Treiber diese Aufgabe.


----------



## jonius (20. Feb 2011)

Wie wäre es damit?

```
text=text.replace(".",(char)92+".");
text=text.replace("?",(char)92+"?");
//...
```


----------



## guytar (20. Feb 2011)

Mit PreparedStatement hat es gut geklappt. danke

@jonius:
Ich möchte nicht jedes einzelne Zeichen ersetzten lassen... danke für den tipp


----------



## musiKk (20. Feb 2011)

guytar hat gesagt.:


> @jonius:
> Ich möchte nicht jedes einzelne Zeichen ersetzten lassen... danke für den tipp



Gut so, das ist auch völliger Schwachsinn. Wer mit JDBC arbeitet und für Queries mit Parametern kein [c]PreparedStatement[/c] nimmt, macht sich das Leben nur unnötig schwer und erzeugt mit an Sicherheit grenzender Wahrscheinlichkeit Sicherheitslücken.


----------

