Entwickler-Ecke
Alle Sprachen - Alle Plattformen - Umlaute in Datenbank
ssb-blume - Mo 01.05.17 18:12
Titel: Umlaute in Datenbank
Hallo!
mein Provider hat die Internetseite auf einen anderen Server gestellt, Die Datenbank ist in UTF-8, eben so alle Tabellen.
Bei Ansehen muss ich feststellen, dass alle umlaute (auch ß) nicht dargestellt werden statt dessen wird eine schwarze Raute mit einem Fragezeichen gezeigt.
Ich habe nun alle Möglichkeiten probiert, die Zeichen headezimal angezeigt usw. Kein Erfolg:
Im Header steht der Zeichensatz utf-8;
Was ist hier los? wie kann ich die Umlaute wieder anzeigen??
Vorab schon Danke
Hansi
Moderiert von Th69: Topic aus Datenbanken (inkl. ADO.NET) verschoben am Di 02.05.2017 um 15:42
Delete - Mo 01.05.17 18:33
- Nachträglich durch die Entwickler-Ecke gelöscht -
ssb-blume - Di 02.05.17 11:01
Genau das hatte ich gefragt, die Antwort also nicht gerade hilfreich.
ABER das hat mich angespornt, eine Funktion zu machen die auch wirklich funktioniert:
PHP-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27:
| <?php
function um_uni($from) { $x = ''; $i = 0; for ($i = 0; $i < strlen($from); $i++) { $k = ord($from[$i]); if ($k < 128) { $x .= $from[$i]; } else { switch ($k) { case 228: $x .= 'ä'; break; case 246: $x .= 'ö'; break; case 252: $x .= 'ü'; break; case 196: $x .= 'Ä'; break; case 214: $x .= 'Ö'; break; case 220: $x .= 'Ü'; break; case 223: $x .= 'ß'; break; } } } return $x; } ?> |
Falls jemand eine bessere Lösung hat, - immer her damit!
Hansi
Th69 - Di 02.05.17 11:58
Hallo ssb-blume,
geht es dir denn um PHP-Code oder um C#-Code (weil du im C# und .NET-Bereich gepostet hast)?
ssb-blume - Di 02.05.17 14:50
definitiv php, habe die erste Sparte genommen, die Datenbank enthält. SORRY
ssb-blume - Di 02.05.17 14:59
hydemarie:
Wenn Du mein Beispiel gelesen hast, dann wirst Du merken, dass die ankommenden Zeichen alle in im Standard kommen, also die Umlaute auf der Tabelle > 128 und mit dem gleichen Byte.
Die Funktion macht also nichts anderes als einen vorhanden Bytecode in Integer zu wandeln und danach wieder in das Zeichen. Eigendlich Quatsch, aber es funktioniert.
Wer weiß wieso, ist mir auch egal.
hansi
hydemarie - Di 02.05.17 15:10
ssb-blume hat folgendes geschrieben : |
Wer weiß wieso, ist mir auch egal. |
Das ist ja ungefähr so das Problem ... :)
Delete - Di 02.05.17 16:59
- Nachträglich durch die Entwickler-Ecke gelöscht -
ub60 - Di 02.05.17 18:15
Eventuell hilft ja nach dem Aufbau der Verbindung die Umstellung auf UTF8:
PHP-Quelltext
1:
| mysqli_set_charset($ConnectionID, "utf8"); |
Das hatte seinerzeit bei uns die Probleme beseitigt.
ub60
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!