UTF8_CODE () ist eine integrierte Funktion von PHP, die ISO-8859-1 codierte Zeichenfolgen in UTF-8-codiert umwandelt. Die Syntax ist sehr einfach:
<span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-title function_ invoke__">utf8_encode</span></span><span> ( </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$data</span></span><span> )
</span></span>
$ Daten : Um die codierte Zeichenfolge umzuwandeln, muss es ISO-8859-1 Codierung sein.
Rückgabewert : Gibt die konvertierte UTF-8-codierte Zeichenfolge zurück.
Es ist zu beachten, dass UTF8_CODE () nur für Conversions von ISO-8859-1 nach UTF-8 geeignet ist. Wenn die Quellzeichenfolge selbst bereits eine UTF-8-Codierung ist, verursacht das Aufrufen dieser Funktion einen Codierungsfehler. Bei dieser Verwendung müssen Sie also sicherstellen, dass das Codierungsformat der Quelldaten ISO-8859-1 ist.
Stellen Sie zunächst sicher, dass die von Ihnen konvertierende Zeichenfolge ISO-8859-1 Codierung ist. Wenn Sie sich über das Codierungsformat der Zeichenfolge nicht sicher sind, können Sie mb_detect_encoding () zum Erkennen verwenden. Zum Beispiel:
<span><span><span class="hljs-variable">$string</span></span><span> = </span><span><span class="hljs-string">"Héllo World!"</span></span><span>; </span><span><span class="hljs-comment">// Angenommen, diese Zeichenfolge ist ISO-8859-1 Codierung</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">mb_detect_encoding</span></span><span>(</span><span><span class="hljs-variable">$string</span></span><span>, </span><span><span class="hljs-string">'ISO-8859-1'</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Die Zeichenfolge ist ISO-8859-1 Codierung。"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"String ist nicht ISO-8859-1 Codierung。"</span></span><span>;
}
</span></span>
Sobald Sie bestätigen, dass die Zeichenfolge ISO-8859-1 Codierung ist, können Sie die Funktion utf8_encode () zum Konvertieren verwenden:
<span><span><span class="hljs-variable">$string_iso</span></span><span> = </span><span><span class="hljs-string">"Héllo World!"</span></span><span>;
</span><span><span class="hljs-variable">$string_utf8</span></span><span> = </span><span><span class="hljs-title function_ invoke__">utf8_encode</span></span><span>(</span><span><span class="hljs-variable">$string_iso</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$string_utf8</span></span><span>;
</span></span>
Ausgangsergebnis:
<span><span>Héllo World!
</span></span>
Jetzt wurde die Zeichenfolge von ISO-8859-1 in UTF-8-Codierung konvertiert.
Obwohl die Funktion utf8_encode () sehr einfach ist, gibt es immer noch einige Details, die bei der Verwendung besonderer Aufmerksamkeit erforderlich sind:
UTF8_CODE () gilt nur für iSO-8859-1 codierte Daten. Wenn die Quelldaten nicht ISO-8859-1, sondern andere Codierungsformate (wie UTF-16 oder GB2312) sind, verursacht die Verwendung von UTF8_CODE () , um umzuwandeln, verstümmelten Code oder Fehler. Um die Codierung der Korrektur zu gewährleisten, bestätigt es am besten die Codierung der Quelldaten, bevor der Anruf aufgerufen wird.
utf8_encode () kann nur Zeichen in ISO-8859-1 verarbeiten. Für Zeichenfolgen, die Multibyte -Zeichensätze (wie Chinesisch, Japanisch usw.) enthalten, müssen andere Methoden codiert und konvertiert werden. Sie können die Funktion mb_convert_encoding () verwenden, um Conversions dieser Zeichensätze zu verwalten, z. B.:
<span><span><span class="hljs-variable">$string</span></span><span> = </span><span><span class="hljs-string">"Hallo,Welt!"</span></span><span>;
</span><span><span class="hljs-variable">$string_utf8</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mb_convert_encoding</span></span><span>(</span><span><span class="hljs-variable">$string</span></span><span>, </span><span><span class="hljs-string">'UTF-8'</span></span><span>, </span><span><span class="hljs-string">'GB2312'</span></span><span>);
</span></span>
Bei Verwendung von UTF8_Encode () kann dies zu einem fehlerhaften oder unvorhersehbaren Verhalten führen, wenn die eingehende Zeichenfolge ungültige ISO-8859-1 Zeichen enthält. Daher ist es besser, die Eingabedaten vor der Konvertierung zu überprüfen oder eine Try-Catch -Struktur zu verwenden, um Ausnahmen zu erfassen.
UTF8_CODE () konvertiert ISO-8859-1 in UTF-8, und PHP liefert auch eine entsprechende Funktion utf8_decode () , die UTF-8-codierte Zeichenfolgen in ISO-8859-1 konvertieren kann. In einigen Anwendungen kann es erforderlich sein, die Daten in zwei Richtungen umzuwandeln.
Zum Beispiel:
<span><span><span class="hljs-variable">$utf8_string</span></span><span> = </span><span><span class="hljs-title function_ invoke__">utf8_encode</span></span><span>(</span><span><span class="hljs-variable">$iso_string</span></span><span>);
</span><span><span class="hljs-variable">$iso_string_back</span></span><span> = </span><span><span class="hljs-title function_ invoke__">utf8_decode</span></span><span>(</span><span><span class="hljs-variable">$utf8_string</span></span><span>);
</span></span>
Auf diese Weise können wir uns gegenseitig zwischen verschiedenen Kodierungen umwandeln.
Das Konvertieren von ISO-8859-1 Codierung in UTF-8 mit der Funktion utf8_encode () ist eine einfache und effiziente Möglichkeit, dies zu tun. Stellen Sie einfach sicher, dass die Quelldaten ISO-8859-1-Codierung sind. Diese Funktion kann Ihnen helfen, die Conversion-Arbeit einfach zu erledigen. Denken Sie jedoch daran, zu vermeiden, diese Funktion auf nicht-ISO-8859-1 codierte Daten aufzurufen und bei Bedarf andere Zeichen für Zeichen zu Codierungsmethoden zu verwenden. Durch die korrekte Verwendung dieser Tools können Codierungsfehler vermieden und Datenkonsistenz und Kompatibilität gewährleistet werden.