ich nehma an, das select, dass du jetzt gepostet hast, liefert die folder korrekt umgewandelt, aber name nicht?
Deutsche Umlaute in SQL QUERY umwandeln?
Einklappen
X
-
Nein.
<QUOTE>
Weil alle Daten in der DB in Unicode gespeichert sind, werden die ö,ä,ü,ß nicht gefunden. In der DB steht dann anstatt eines "ä" ein a| oder sowas.
</QUOTE>
Das Problem ist, dass ich sämtlichen DB Inhalt auf Unicode umgestellt habe, da meine Seite 6 sprachig ist und leider auch grichisch dabei ist. Ein Zeichensatz für alles Sprachen ist einfacher. Leider weiß ich nicht mit dier multibyte extension umzugehen. Finde kein Tutorial darüber.
Habe mal für das ö ein u eingesetzt. Das funktioniert und er wandelt mir alle u in oe um.Zuletzt geändert von antman; 05.10.2004, 09:19.Pickel ? Übergewicht ? Depressionen ?
Brot, Kartoffeln und Milch sind Gift!
http://www.paleofood.de
Kommentar
-
Habe die Lösung gefunden. Dazu musste ich aber in der php das Modul
extension=php_mbstring.dll manuell aktivieren.
Ich weiß, man kann das mit der phpini set Methode machen. Aber geht das auch über htaccess oder eine php.ini in dem Ordner der Skripte ?
PHP-Code:$oe = mb_convert_encoding("ö", "utf-8");
$res =& $this->_db->query("
SELECT id,
REPLACE(REPLACE(REPLACE(REPLACE((CONCAT(c.name_f, ' ', c.name_l)), '".$oe."', 'oe'), 'ü', 'ue'), 'ä', 'ae'), 'ß', 'ss') AS folder,
CONCAT(c.name_f, '_', c.name_l) AS name
FROM contacts c, lnk_company_contact lcc
WHERE (c.id = lcc.id_contact)
AND (c.public = '".$public."')
AND (lcc.id_company = '".$company_id."')
ORDER BY c.name_f");
Dennoch wüsste ich es gerne.Zuletzt geändert von antman; 05.10.2004, 10:21.Pickel ? Übergewicht ? Depressionen ?
Brot, Kartoffeln und Milch sind Gift!
http://www.paleofood.de
Kommentar
-
Ich werde noch irre. So geht es dann schon wieder nicht:
Notice: Array to string conversion in D:\utf\classes\_project\den.class.php on line 70
Notice: Array to string conversion in D:\utf\classes\_project\den.class.php on line 71
PHP-Code:$search = mb_convert_encoding(array("ä", "Ä", "ü", "Ü", "ö", "Ö", "ß"), "utf-8");
$replace = mb_convert_encoding(array("ae", "ae", "ue", "ue", "oe", "oe", "ss"), "utf-8");
$res =& $this->_db->query("
SELECT id,
LOWER(CONCAT(c.name_f, '_', c.name_l)) AS folder,
CONCAT(c.name_f, ' ', c.name_l) AS name
FROM contacts c, lnk_company_contact lcc
WHERE (c.id = lcc.id_contact)
AND (c.public = '".$public."')
AND (lcc.id_company = '".$company_id."')
ORDER BY c.name_f");
while($row =& $res->fetchRow(DB_FETCHMODE_ASSOC)) {
$row['folder'] = str_replace($search, $replace, $row['folder']);
$employees[] = $row;
}
Zuletzt geändert von antman; 05.10.2004, 10:46.Pickel ? Übergewicht ? Depressionen ?
Brot, Kartoffeln und Milch sind Gift!
http://www.paleofood.de
Kommentar
-
Original geschrieben von antman
Ich werde noch irre.
andernfalls hätte dir ja beim blick ins manual auffallen müssen, welche art von parametern die funktion mb_convert_encoding() erwartet.
tipp: nein, es sind keine arrays.I don't believe in rebirth. Actually, I never did in my whole lives.
Kommentar
-
-
Da könntest du recht haben. Fühle mich auch schon irre.
Wie wäre es hiermit ?
http://www.php.net/manual/en/functio...-variables.php
PHP-Code:$search = array("ä", "ü", "ö", "ß");
$replace = array("ae", "ue", "oe", "ss");
$interenc = mb_internal_encoding("utf-8");
$interenc = mb_convert_variables($interenc, "ISO-8859-1", $search, $replace);
$res =& $this->_db->query("SELECT id,
LOWER(CONCAT(c.name_f, '_', c.name_l)) AS folder,
CONCAT(c.name_f, ' ', c.name_l) AS name
FROM contacts c, lnk_company_contact lcc
WHERE (c.id = lcc.id_contact)
AND (c.public = '".$public."')
AND (lcc.id_company = '".$company_id."')
ORDER BY c.name_f");
if (DB::isError($res)) {
die($res->getMessage());
}
while($row =& $res->fetchRow(DB_FETCHMODE_ASSOC)) {
$row['folder'] = str_replace($search, $replace, $row['folder']);
$employees[] = $row;
}
Warning: mb_convert_variables(): Unknown encoding "1" in D:\utf\classes\_project\den.class.php on line 73Pickel ? Übergewicht ? Depressionen ?
Brot, Kartoffeln und Milch sind Gift!
http://www.paleofood.de
Kommentar
-
Original geschrieben von asp2php
lesen mach klug:
http://de3.php.net/manual/en/functio...t-encoding.php
Die ist nur für Strings gedacht. Habe ich mittlerweile auch schon rausgefunden. asp, du bist doch normalerweise der DB Gott.
Hast du keine Lösung ?Zuletzt geändert von antman; 05.10.2004, 11:27.Pickel ? Übergewicht ? Depressionen ?
Brot, Kartoffeln und Milch sind Gift!
http://www.paleofood.de
Kommentar
-
Ich meinte hier:
http://de3.php.net/manual/en/functio...t-encoding.php
waren wir schon. Hat nicht geklappt.Pickel ? Übergewicht ? Depressionen ?
Brot, Kartoffeln und Milch sind Gift!
http://www.paleofood.de
Kommentar
-
Original geschrieben von antman
Klappt aber auch nicht:
Warning: mb_convert_variables(): Unknown encoding "1" in D:\utf\classes\_project\den.class.php on line 73
PHP-Code:$interenc = mb_internal_encoding("utf-8");
$interenc = mb_convert_variables($interenc, "ISO-8859-1", $search, $replace);
und welchen sinn siehst du darin, diesen wert als ersten parameter an mb_convert_variables() zu übergeben?I don't believe in rebirth. Actually, I never did in my whole lives.
Kommentar
-
So wie asp es geschrieben hat müsste es funktionieren. Sieht logisch aus. Funzt aber nicht. Gibt auch keine Fehlermeldung.
PHP-Code:$umlaute = array("ä", "ü", "ö", "ß");
$replace = array("ae", "ue", "oe", "ss");
foreach ($umlaute as $a) {
$search[] = mb_convert_encoding($a,'utf-8');
}
$res =& $this->_db->query("SELECT id,
LOWER(CONCAT(c.name_f, '_', c.name_l)) AS folder,
CONCAT(c.name_f, ' ', c.name_l) AS name
FROM contacts c, lnk_company_contact lcc
WHERE (c.id = lcc.id_contact)
AND (c.public = '".$public."')
AND (lcc.id_company = '".$company_id."')
ORDER BY c.name_f");
if (DB::isError($res)) {
die($res->getMessage());
while($row =& $res->fetchRow(DB_FETCHMODE_ASSOC)) {
$row['folder'] = str_replace($search, $replace, $row['folder']);
$employees[] = $row;
}
Zuletzt geändert von antman; 05.10.2004, 11:58.Pickel ? Übergewicht ? Depressionen ?
Brot, Kartoffeln und Milch sind Gift!
http://www.paleofood.de
Kommentar
-
Original geschrieben von asp2php
was heißt: funz nicht
schon mal zur Kontrolle aus gegeben:
- vor Ersetzung
- nach Ersetzung
In welchem Browser unter welchem BS zeigst du das Ergebnis an?
Array
(
[0] => �
[1] => �
[2] => �
[3] => �
)
Array
(
[0] => ä
[1] => ü
[2] => ö
[3] => ß
)
Firefox 1.0, Win 2000
Hmm, dann mach dieses nicht was sie soll:
PHP-Code:$row['folder'] = str_replace($search, $replace, $row['folder']);
Zuletzt geändert von antman; 05.10.2004, 12:29.Pickel ? Übergewicht ? Depressionen ?
Brot, Kartoffeln und Milch sind Gift!
http://www.paleofood.de
Kommentar
Kommentar