---
title: "Sonderzeichen und exec_INSERTquery"
url: "https://www.typo3.net/d/87602-sonderzeichen-und-exec-insertquery"
source: "typo3.net"
tags: ["Allgemein","Frage"]
created: "2009-03-05"
last_reply: "2009-03-09"
replies: 6
solved: false
page: 1
pages: 1
lang: "de"
---

# Sonderzeichen und exec_INSERTquery

Allgemein · 6 Antworten · gestartet 2009-03-05

## Eröffnungsbeitrag

**intensivstation** · 2009-03-05 · [Beitrag #1](https://www.typo3.net/d/87602-sonderzeichen-und-exec-insertquery/1)

Ich habe ein selsames Problem.
Ich sende per xAjax Formular-Daten an eine eigene PHP-Funktion:

```javascript
onclick="###PREFIX###doAdd(encodeURIComponent(document.gbentry.entry.value), encodeURIComponent(document.gbentry.vorname.value))"
```

und empfange sie so:

```php
$markerArray["###VORNAME###"] 	= htmlspecialchars(urldecode($vorname));
```

Und gebe sie aus und schreibe sie in die DB.
Die Daten werden korrekt ausgegeben, landen aber falsch in der DB.
Lange habe ich experimentiert und erst als ich SET NAMES utf8 hinzugefügt habe:

```php
$query = "SET NAMES utf8";
$queryResult = mysql( TYPO3_db, $query );
$insert = array('pid' => $thePID, USW);
$success = $GLOBALS['TYPO3_DB']->exec_INSERTquery($table, $insert);
```

kamen die Daten korrekt in der DB an.
Woran kann das liegen? Ich verwende bei dieser Homepage nirgendwo UTF-8 !!! Alles ist auf ISO gestellt!

## Antworten

### [#2](https://www.typo3.net/d/87602-sonderzeichen-und-exec-insertquery/2) · just2b · 2009-03-05

und du gibst bei xajax auxh explizit iso als charset an?

georg

### [#3](https://www.typo3.net/d/87602-sonderzeichen-und-exec-insertquery/3) · intensivstation · 2009-03-06

Ja:

```php
$this->xajax->setCharEncoding('ISO-8859-1');
```

wird in der main-Funktion gesetzt (nicht in der Aufruf-Funktion).
Es scheint ja eher nichts mit Ajax, sondern mit der DB zu tun zu haben.
Beim schreiben in die DB geht was schief, obwohl dort alles auf latin1_swedish_ci gestellt ist, klappts nur mit "SET NAMES utf8".
Ich verstehe das nicht.
Wenn es mit Ajax zu tun hätte, würden dann die Sonderzeichen nicht auch
im Browser falsch ausgegeben werden?

### [#4](https://www.typo3.net/d/87602-sonderzeichen-und-exec-insertquery/4) · just2b · 2009-03-06

Ich hab das immer so gemacht

```php
		$objResponse = new tx_xajax_response($GLOBALS['TSFE']->metaCharset);
		$objResponse->addAssign('infobox', 'innerHTML', $content);

		return $objResponse->getXML();
```

georg

### [#5](https://www.typo3.net/d/87602-sonderzeichen-und-exec-insertquery/5) · intensivstation · 2009-03-09

OK, es muss wohl doch mit Ajax zu tun haben.
Anscheinend werden meine Formular-Inhalte in UTF-8 an die Zielfunktion gesendet.
Da ich dort kein Charset angegeben hatte, hatte die Zielfunktion die Fomularinhalte in UTF-8 ausgegeben, sodass mir nichts auffiel.
Aber hierdurch hat sich das geändert:

```php
$objResponse = new tx_xajax_response($GLOBALS['TSFE']->metaCharset);
```

Das Problem ist also, dass die Formular-Inhalte offensichtlich UTF-8 kodiert gesendet werden. Demnach dürfte das hier in der main-Funktion nicht korrekt sein:

```php
require_once (t3lib_extMgm::extPath('xajax') . 'class.tx_xajax.php');		// Include xaJax
$this->xajax = t3lib_div::makeInstance('tx_xajax'); // Make the instance
$this->xajax->setCharEncoding('ISO-8859-1');
```

Aber ich sehe da kein Fehler...

### [#6](https://www.typo3.net/d/87602-sonderzeichen-und-exec-insertquery/6) · intensivstation · 2009-03-09

Ich denke ich weiss nun woran es liegt. Bei Apache steht das hier:
AddDefaultCharset utf-8
Das wird wahrscheinlich der Grund für die Probleme sein.

### [#7](https://www.typo3.net/d/87602-sonderzeichen-und-exec-insertquery/7) · intensivstation · 2009-03-09

Nein, an Apache lag es auch nicht. Jetzt bin ich sprachlos...

---

Quelle: „Sonderzeichen und exec_INSERTquery“, typo3.net, https://www.typo3.net/d/87602-sonderzeichen-und-exec-insertquery
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
