Der Cookie ist mit dem big5-Set codiert und kann nicht in MySQL eingefügt werden. Könnten Sie mir helfen, dieses Problem zu lösen?
Felder: username
ist eng, date1
ist Datum, reason1
ist ein chinesisches Zeichen.
Verwenden Sie UTF-8 , wenn Sie eine Tabelle erstellen.
%Vor%Verwenden Sie UTF-8 , wenn Sie in Tabelle
einfügen %Vor%Detaillierter Code
Unten Code ist getesteter Code bitte tun Sie das folgende seine Arbeit.
Wenn Sie bereits eine Datenbank erstellt haben, ändern Sie sie bitte wie folgt. Und wenn Sie keine Datenbank erstellt haben, erstellen Sie sie und setzen Sie Collation auf utf8_unicode_ci
Und dasselbe für Tabelle definieren Collation als "utf8_unicode_ci" für Tabellenfelder, in denen Sie chines Zeichen speichern möchten.
%Vor% %Vor%Sehen Sie sich das Ergebnis und den Schritt visuell an.
Für Chinesen brauchen Sie wirklich utf8mb4
, nicht utf8
. Dies liegt an einer kleinen Anzahl von chinesischen Zeichen, für die 4-Byte-UTF8-Zeichen erforderlich sind, die von MySQLs utf8
nicht unterstützt werden.
Das eigentliche Problem ist, dass der Cookie in big5
kodiert ist? Ist der Rest der Daten im Client als utf8
codiert? Wenn 'Ja' zu beiden, ...
Ändern Sie die Verbindung zu big5
, machen Sie INSERT
/ SELECT
des Cookies und wechseln Sie dann zurück zu utf8 (oder besser, utf8mb4 nach dem Upgrade).
Das Ausführen von SET NAMES big5
oder das Aufrufen der charset('big5')
-Funktion für die von Ihnen verwendete API ist der bevorzugte Weg, um hin und her zu wechseln.
(Verlassen Sie sich von der mysql_*
-Schnittstelle; wechseln Sie zu mysqli_*
oder PDO
.)
Wenn alles im Client big5
ist, müssen Sie nicht hin und her wechseln. Erklären Sie einfach, dass der Client big5 verwendet. Hinweis: Es spielt keine Rolle, ob die Tabelle / Spalte auch big5 ist; MySQL wird zwischen ihnen konvertieren.
Tags und Links javascript php mysql character-encoding