# Charset in DB



## Guest (2. Jul 2008)

Hallo ,

ich bekomme es leider nicht hin, meine java String richtig zu konvertieren, dass er in der Datenbank im korrketen zeichensatz vorliegt.


Ich habe es bsiher so probiert:


```
Charset charset = Charset.forName( charset);	 
	 ByteBuffer buffer = charset.encode(text);
	 
	 CharsetDecoder decoder = charset.newDecoder();
	 try {
		charBuffer = decoder.decode(buffer);
	} catch (CharacterCodingException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}

	 
	 return buffer.toString();
```

Das haut so aber nicht hin.  Ich brauche ja ein varchar in der DB.


----------



## FenchelT (3. Jul 2008)

Hallo,

verstehe Dein Problem nicht so ganz.
Du kannst doch den Charset Deiner DB so einstellen, dass er dem Charset entspricht den Du in Java benutzt.
varchar() bedeutet doch nur, dass Du ein Feld variabler Laenge entsprechend Deines Charsets hast.

Es gibt auch RDBMS die extra Unicode Datentypen zur Verfuegung stellen, falls Du Unicode brauchst. MSSQL macht das z.B., da gibt es einen Datentypen nvarchar()


Gruesse


----------



## Guest (3. Jul 2008)

Nun, mein Rechner ist sicherlich nicht der einzigste, der auf die DB zugreift. Die Datenbank muss daher schon so bleiben wie sie ist. Um es vorweg zu nehmen, den default charset meines Rechners werde ich auch nicht ändern. 
Das kann wohl nicht Sinn der Sache sein.

Wäre mir wirklich wichtig. Ich habe einen String, dieser ist zum Beispiel UFT-8 kodiert. Wie muss ich vorgehen?

Vielen Dank im Voraus.


----------



## FenchelT (3. Jul 2008)

Hallo,

ich sagte nicht, dass DU den Charste Deines Rechner aendern sollst, sondern ueberpruefen sollst, welchen Charset DEine 
DB hat und diese ggfls auf Unicode stellen, dann brauchst Du nichts konvertieren.

Wenn Du Unicode Zeichen in Deiner DB speichern moechtest, diese aber nicht auf den Unicode Charset eingestellt ist, dann wird das nix.


----------



## Gast (3. Jul 2008)

nein , ich möchte Mac-Roman in der DB speichern. Das muss auch so bleiben. 

Leider hat mein Treiber-Objekt keine Funktion setCharset().

Könntest du mir sagen, wie ich meinen String konvertieren muss, damit das funktioniert ?

Ich würde also gern einen String nach mac-Roman konvertieren und diesen in die DB schreiben. Ich weiß nicht, ob mir das konvertieren schon gelungen ist, in der DB fehlen jedoch immer die Umlaute.


----------

