set names 'utf8'
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
angeben
aufbau
code
datum
dokument
einstellung
entsprechender codierung
folgendes code
header
konvertieren
lustige warnungen
nerven
problem
set
setzen
type
uni
unwissenheit
verbindung
verbindungsaufbau
-
Bisher setze ich bei jedem Verbindungsaufbau zur DB auch den Uni-Code:
$result = mysqli_query($con,"SET NAMES 'utf8' COLLATE 'utf8_unicode_ci' "); If (!$result) {die ("UTF-8 konnte nicht gesetzt werden");};
Ist das jedesmal nötig?
Oder ist der Befehl solange persistent bis er durch einen anderen "SET NAMES" überschrieben wird?
Was ist wenn ich die DB-Verbindung wieder schliesse über
mysqli_close($con);
Muss ich dann beim erneuten Verbindungsaufbau auch wieder "SET NAMES" setzen?
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hallo
nein, muss Du nicht jedesmal mit im Query angeben,
den Charset bei Verbindungs-Aufbau setzen sollte genug sein.
für mysql:
mysql_set_charset('utf8');
für mysqli:
mysqli_set_charset('utf8');
und zum Sicher gehen nur 1 mal nach Verbindungs-Aufbau
dieses ... SET NAMES ... COLLATE ... Query
dazu sollten sowohl die DB-Daten als auch die Seite auf UTF-8 angelegt sein
... bei PHP hilft oft auch folgendes:
<?php header("Content-Type: text/html; charset=utf-8"); mb_internal_encoding( 'UTF-8' ); ...
Wenn Du die DB-Verbindung über:
; geschlossen hast,mysqli_close($con)
dann sind ja alle Einstellungen wieder verloren, also bei jeder neuen DB-Verbindung wieder ein mal die SET NAMES utf8 Einstellungen setzen, aber nicht in jedem Daten-Query (nur 1x)
-
Hallo noch als ergänzender Hinweis, wo ich sehr lange drüber gestolpert bin - einfach aus Unwissenheit.
Das .html oder .php Dokument welches du schreibst muss auch in entsprechender Codierung gespeichert sein sonst kann das Probleme machen.
Im Notepad++ kann man dies unter dem Menüpunkt "Kodierung" angeben. Auch konvertieren ist möglich.
Unter Einstellungen kannst du dies auch als Standard definieren.
Ich verwende die Einstellung "UTF 8 ohne BOM" das funktioniert bei mir bestens.
-
Richtig. "UTF8 mit BOM" kann dir echt die Nerven rauben.
Wenn du z.B. per header() Ausgaben schreibst und da hängt dir noch ein BOM mit drin bekommst du lustige Warnungen und wunderst dich erst mal, da du ja vorher eigentlich nix ausgibst.
Hab mir schon ab und zu die Nerven damit zerstört. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage