Aktueller Standort: Startseite> Neueste Artikel> Wie dekodieren Sie eine Zeichenfolge mit Sonderzeichen? MB_DECODE_NUMERICALENTITY HILFE

Wie dekodieren Sie eine Zeichenfolge mit Sonderzeichen? MB_DECODE_NUMERICALENTITY HILFE

gitbox 2025-07-09

1. Was ist die Funktion mb_decode_numericalentity () ?

mb_decode_numericalentity () ist eine Multibyte -String -Verarbeitungsfunktion (bereitgestellt durch die Mbstring -Erweiterung), und ihre Funktion besteht darin, die numerische Form (z. B. ' ) in den entsprechenden Zeichen in den entsprechenden Zeichen zu dekodieren. Im Gegensatz zur herkömmlichen Funktion HTML_ENTITY_DECODE () unterstützt mb_decode_numericalentity () mehr Zeichensätze und verfügt über eine bessere Handhabung von Multibyte -Zeichen.

Der Prototyp dieser Funktion lautet wie folgt:

 <span><span><span class="hljs-title function_ invoke__">mb_decode_numericentity</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$string</span></span><span>, </span><span><span class="hljs-keyword">array</span></span><span> </span><span><span class="hljs-variable">$map</span></span><span>, </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$encoding</span></span><span>): </span><span><span class="hljs-keyword">string</span></span><span>
</span></span>
  • $ String : Die zu dekodierende Zeichenfolge.

  • $ map : Ein Array, das den Bereich definiert, in dem digitale Wesenheiten dekodiert werden müssen.

  • $ codierung : Gibt die Zeichencodierung an (z. B. UTF-8 oder ISO-8859-1 ).

2. Wie dekodieren Sie eine Zeichenfolge mit mb_decode_numericalEntity () ?

Basisnutzungsbeispiele:

Angenommen, Sie haben eine Zeichenfolge, die eine HTML -Entitätskodierung enthält, wie folgt:

 <span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"Hello &amp;#20844;&amp;#22909;!"</span></span><span>;
</span></span>

Diese Zeichenfolge enthält die HTML -Entitätskodierung des chinesischen Charakters "Hallo". Jetzt wollen wir es in Originalzeichen dekodieren.

 <span><span><span class="hljs-comment">// DekodierungHTMLDigitale Einheit</span></span><span>
</span><span><span class="hljs-variable">$decoded_str</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mb_decode_numericentity</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-keyword">array</span></span><span>(</span><span><span class="hljs-number">0x80</span></span><span>, </span><span><span class="hljs-number">0x10FFFF</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">0xFFFF</span></span><span>), </span><span><span class="hljs-string">'UTF-8'</span></span><span>);

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$decoded_str</span></span><span>; </span><span><span class="hljs-comment">// Ausgabe: Hello Hallo!</span></span><span>
</span></span>

In diesem Beispiel verwenden wir die Funktion mb_decode_numericalentity () und übergeben in einem Zeichenbereich Array [0x80, 0x10ffff, 0, 0xffff] , das alle gültigen Unicode -Zeichenbereiche darstellt. Die dekodierte Zeichenfolge ist "Hallo!" .

3. Interpretation des $ MAP -Parameters

Der $ MAP -Parameter definiert den Bereich einer numerischen Entität. Es ist eine Reihe von vier Elementen. Das Format des Arrays lautet wie folgt:

 <span><span><span class="hljs-keyword">array</span></span><span>(</span><span><span class="hljs-variable">$from</span></span><span>, </span><span><span class="hljs-variable">$to</span></span><span>, </span><span><span class="hljs-variable">$from2</span></span><span>, </span><span><span class="hljs-variable">$to2</span></span><span>);
</span></span>
  • $ von und $ bis : Die Start- und Endwerte des ersten Bereichs.

  • $ von 2 und $ to2 : Die Start- und Endwerte des zweiten Bereichs (falls vorhanden).

In der tatsächlichen Verwendung ist es üblich, alle HTML -Entitäten zu dekodieren, sodass ein großer Zeichenbereich verwendet werden kann, um alle Unicode -Zeichen zu überschreiben.

4. Dekodieren Sie einen bestimmten Zeichensatz

mb_decode_numericalentity () unterstützt mehrere Zeichencodierungen, und verschiedene Codierungsformate können entsprechend den tatsächlichen Anforderungen ausgewählt werden. Wenn Ihre Anwendung hauptsächlich auf mehrsprachige Umgebungen ausgerichtet ist, wird empfohlen , die UTF-8 -Codierung zu verwenden, mit der Charaktersätze in allen Sprachen verarbeitet werden können.

 <span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"&amp;#20844;&amp;#22909; &amp;#12371;&amp;#12395;&amp;#12385;"</span></span><span>; </span><span><span class="hljs-comment">// Hallo こんにちは</span></span><span>
</span><span><span class="hljs-variable">$decoded_str</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mb_decode_numericentity</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-keyword">array</span></span><span>(</span><span><span class="hljs-number">0x80</span></span><span>, </span><span><span class="hljs-number">0x10FFFF</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">0xFFFF</span></span><span>), </span><span><span class="hljs-string">'UTF-8'</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$decoded_str</span></span><span>; </span><span><span class="hljs-comment">// Ausgabe: Hallo こんにちは</span></span><span>
</span></span>

5. Behandeln Sie verschiedene HTML -Entitätstypen um

Neben digitalen Einheiten (wie &#123; ) können HTML -Entitäten auch als Zeichennamen (wie & lt; ) erscheinen. mb_decode_numericalentity () wird hauptsächlich zum Umgang mit numerischen Entitäten verwendet. Wenn Ihre Zeichenfolge jedoch Zeichennamen -Entitäten enthält, müssen Sie möglicherweise die Funktion html_entity_decode () verwenden, um mit dieser Verwendung zu verwenden.

 <span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"Hello &amp;lt;b&amp;gt;World&amp;lt;/b&amp;gt;!"</span></span><span>;
</span><span><span class="hljs-variable">$decoded_str</span></span><span> = </span><span><span class="hljs-title function_ invoke__">html_entity_decode</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, ENT_QUOTES, </span><span><span class="hljs-string">'UTF-8'</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$decoded_str</span></span><span>; </span><span><span class="hljs-comment">// Ausgabe: Hello &lt;b&gt;World&lt;/b&gt;!</span></span><span>
</span></span>

6. Dinge zu beachten

  • mb_decode_numericalentity () erfordert Unterstützung für Mbstring -Erweiterungen. Stellen Sie daher sicher, dass Mbstring -Erweiterungen in Ihrer PHP -Umgebung installiert und aktiviert sind, bevor sie verwendet werden.

  • Diese Funktion wird hauptsächlich zum Dekodieren von digitalen Entitäten verwendet, und andere Methoden sind für die Entschlüsselung von Charakternamen -Entitäten erforderlich.

  • Die Zeichenkodierung muss mit der von der Zeichenfolge tatsächlich verwendeten Kodierung übereinstimmen, ansonsten kann ein verstümmelter Code auftreten.

7. Zusammenfassung

mb_decode_numericalEntity () ist ein sehr praktisches Instrument, insbesondere wenn es sich um Saiten mit Sonderzeichen handelt. Durch sie können wir HTML -Digitalentitäten problemlos dekodieren und die Originalzeichen wiederherstellen. Unabhängig davon, ob es sich um mehrsprachige Unterstützung oder die Codierungskonvertierung von HTML -Entität handelt, kann MB_Decode_NumericalEntity () uns helfen, Zeichendaten effektiv zu verwalten.

Indem wir diese Funktion vernünftigerweise verwenden, können wir Daten besser mit Sonderzeichen in PHP -Anwendungen verarbeiten und anzeigen und die Benutzererfahrung und die Systemstabilität verbessern.