Aktueller Standort: Startseite> Neueste Artikel> So verwenden Sie MySQLI :: set_charset in einer mehrsprachigen Website, um die normale Anzeige verschiedener Sprachen zu erreichen

So verwenden Sie MySQLI :: set_charset in einer mehrsprachigen Website, um die normale Anzeige verschiedener Sprachen zu erreichen

gitbox 2025-08-13

Was sind Zeichensätze und Codierungen?

Ein Zeichensatz ist ein System, das von Computern verwendet wird, um Zeichen zu speichern, die Zeichen auf bestimmte codierte Werte abbilden. Codierung ist eine Möglichkeit, Zeichen im Zeichen in Binärdaten umzuwandeln. Zu den gemeinsamen Zeichensets gehören UTF-8, GBK, ISO-8859-1 usw.

In mehrsprachigen Websites wird normalerweise die UTF-8 -Codierung ausgewählt, da es fast alle Sprachcharaktere unterstützt und eine gute Kompatibilität aufweist. UTF-8 ist eine Zeichenkodierung mit variabler Länge, die fast den gesamten Text der Welt darstellen kann.


Warum brauche ich MySQLI :: set_charset ?

Die Zeichencodierung zwischen Datenbank und PHP muss konsistent sein, ansonsten kann während der Datenübertragung verstümmelte Codes oder verlorene Informationen auftreten. Wenn die Datenbank beispielsweise die UTF-8-Codierung verwendet und PHP die Zeichencodierung bei der Verbindung mit der Datenbank nicht korrekt einstellt, kann dies dazu führen, dass der in der Datenbank gespeicherte chinesische Inhalt auf der Website als verstümmelt angezeigt wird.

MySQLI :: set_charset wurde entwickelt, um die Konsistenz der Zeichencodierung zwischen PHP- und MySQL -Datenbanken sicherzustellen. Durch die Verwendung dieser Methode können wir die MySQL -Datenbankverbindung so einrichten, dass sie nach der Verbindung zur Datenbank einen bestimmten Zeichensatz verwenden, wodurch die durch inkonsistenten Codierung verursachten Anzeigeprobleme vermieden werden.


Wie benutze ich MySQLI :: set_charset ?

Die Verwendung der MySQLI :: Set_Charset -Methode ist sehr einfach. Angenommen, wir haben uns über MySQLI mit der MySQL-Datenbank verbunden, hier sind die Schritte, um den auf UTF-8 festgelegten Zeichen festzulegen.

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// Erstellen Sie eine Datenbankverbindung</span></span><span>
</span><span><span class="hljs-variable">$mysqli</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title function_ invoke__">mysqli</span></span><span>(</span><span><span class="hljs-string">"localhost"</span></span><span>, </span><span><span class="hljs-string">"username"</span></span><span>, </span><span><span class="hljs-string">"password"</span></span><span>, </span><span><span class="hljs-string">"database_name"</span></span><span>);

</span><span><span class="hljs-comment">// Überprüfen Sie, ob die Verbindung erfolgreich ist</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;connect_error) {
    </span><span><span class="hljs-keyword">die</span></span><span>(</span><span><span class="hljs-string">"Verbindung ist fehlgeschlagen: "</span></span><span> . </span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;connect_error);
}

</span><span><span class="hljs-comment">// Stellen Sie den Zeichen auf UTF-8</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">set_charset</span></span><span>(</span><span><span class="hljs-string">"utf8"</span></span><span>)) {
    </span><span><span class="hljs-title function_ invoke__">printf</span></span><span>(</span><span><span class="hljs-string">"Fehler:Zeichensatz kann nicht festgelegt werden %s\n"</span></span><span>, </span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;error);
    </span><span><span class="hljs-keyword">exit</span></span><span>();
}

</span><span><span class="hljs-comment">// Führen Sie Datenbankabfrage und andere Vorgänge durch...</span></span><span>
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Im obigen Code legt $ mysqli-> set_charset ("utf8") den Zeichensatz der Datenbankverbindung auf UTF-8 fest. Dadurch wird sichergestellt, dass die aus der Datenbank gelesenen oder geschriebenen Daten als UTF-8-Codierung korrekt verarbeitet werden können, um verstümmelte Probleme zu vermeiden.


Wie benutze ich es auf einer mehrsprachigen Website?

Mehrsprachige Websites speichern in der Regel Inhalte in mehreren Sprachen wie Chinesisch, Englisch, Japanisch usw., um sicherzustellen, dass diese Sprachinhalte ordnungsgemäß angezeigt werden können, der Zeichensatz der Datenbank und der Zeichensatz der PHP -Verbindung übereinstimmen. Wir können MySQLI :: set_charset im Datenbankverbindungscode von PHP festlegen, um eine konsistente Codierung zu gewährleisten. Zusätzlich muss der Zeichensatz auf der Front-End-Seite festgelegt werden. Normalerweise wird der Zeichensatz als UTF-8 angegeben, indem das <meta> Tag von HTML festgelegt wird:

 <span><span><span class="hljs-tag">&lt;<span class="hljs-name">meta</span></span></span><span> </span><span><span class="hljs-attr">charset</span></span><span>=</span><span><span class="hljs-string">"UTF-8"</span></span><span>&gt;
</span></span>

Auf diese Weise wird die Front-End-Seite auch den Inhalt gemäß der UTF-8-Codierung analysiert, wodurch sichergestellt wird, dass Zeichen in verschiedenen Sprachen normal angezeigt werden können.


Verwenden Sie UTF-8, um mehrsprachige Daten in einer Datenbank zu speichern

Um sicherzustellen, dass die Daten Zeichen in verschiedenen Sprachen in der Datenbank korrekt speichern können, muss sichergestellt werden, dass die Tabellen und Felder der Datenbank mit UTF-8 codiert werden. Sie können das auf UTF-8 festgelegte Zeichen angeben, wenn Sie eine Tabelle mit dem folgenden SQL-Befehl erstellen:

 <span><span><span class="hljs-keyword">CREATE</span></span><span> </span><span><span class="hljs-keyword">TABLE</span></span><span> `content` (
    `id` </span><span><span class="hljs-type">INT</span></span><span> </span><span><span class="hljs-keyword">NOT</span></span><span> </span><span><span class="hljs-keyword">NULL</span></span><span> AUTO_INCREMENT </span><span><span class="hljs-keyword">PRIMARY</span></span><span> KEY,
    `title` </span><span><span class="hljs-type">VARCHAR</span></span><span>(</span><span><span class="hljs-number">255</span></span><span>) </span><span><span class="hljs-keyword">NOT</span></span><span> </span><span><span class="hljs-keyword">NULL</span></span><span>,
    `description` TEXT
) ENGINE</span><span><span class="hljs-operator">=</span></span><span>InnoDB </span><span><span class="hljs-keyword">DEFAULT</span></span><span> CHARSET</span><span><span class="hljs-operator">=</span></span><span>utf8;
</span></span>

Durch Angeben von Standard-Charset = UTF8 stellen wir sicher, dass die Tabelle die UTF-8-Codierung unterstützt und Zeichen aus verschiedenen Sprachen speichern kann.


Häufig gestellte Fragen und Lösungen

  1. Müllcode -Problem:
    Wenn nach dem Einstellen des Zeichensatzes immer noch der verstümmelte Code angezeigt wird, überprüfen Sie zunächst, ob der Standardzeichensatz der Datenbank UTF-8 ist. Darüber hinaus müssen Sie sicherstellen, dass die HTML-Codierung der Seite auf UTF-8 eingestellt ist. Wenn diese korrekt eingestellt sind, das Problem weiterhin besteht, können Sie die Zeichensatzeinstellungen für die Datenbanktabellen und Felder überprüfen.

  2. Zeichensatz inkonsistent:
    Wenn der Zeichensatz der Datenbank- und PHP -Verbindung inkonsistent ist, werden die Zeichen möglicherweise nicht korrekt angezeigt. Verwenden Sie die MySQLI :: Set_Charset -Methode, um die Konsistenz zwischen den beiden zu gewährleisten.

  3. Die MySQL -Version unterstützt:
    Stellen Sie sicher, dass Ihre MySQL-Version UTF-8 oder UTF8MB4 unterstützt (letzteres ist ein Superset von UTF-8, das mehr Zeichen wie Emojis usw. unterstützt). Sie können den von der aktuellen Datenbank unterstützten Zeichensatz über den folgenden Befehl anzeigen:

     <span><span><span class="hljs-keyword">SHOW</span></span><span> </span><span><span class="hljs-type">CHARACTER</span></span><span> </span><span><span class="hljs-keyword">SET</span></span><span>;
    </span></span>