Ich brauche ein Array mit allen Zeichen aus einem Wort, aber das Wort hat Buchstaben mit spezieller Codierung wie á, wenn ich den folgenden Code ausfühle:
%Vor%oder
%Vor%Ich bekomme:
array (6) {[0] = & gt; string (1) "w" [1] = & gt; Zeichenfolge (1) "i" [2] = & gt; Zeichenfolge (1) "t" [3] = & gt; string (1) "h" [4] = & gt; Zeichenfolge (1) "Ã" [5] = & gt; string (1) "¡"}
Wie kann ich jedes Zeichen wie folgt erhalten?
array (5) {[0] = & gt; string (1) "w" [1] = & gt; Zeichenfolge (1) "i" [2] = & gt; Zeichenfolge (1) "t" [3] = & gt; string (1) "h" [4] = & gt; Zeichenfolge (1) "á"}
Weil es eine UTF-8-Zeichenfolge ist, tun Sie einfach
%Vor% Der Grund dafür ist, dass der Interpreter, obwohl es in Ihrem Skript richtig aussieht, es in ein Multibyte-Zeichen konvertiert (warum auch mb_split()
funktioniert). Um es in das richtige UTF-8-Format zu konvertieren, können Sie die mb-Funktionen verwenden oder einfach utf8_decode()
angeben.
Ich denke, mb_split wird es für Sie tun: Ссылка
Wenn Sie spezielle Kodierungen verwenden, möchten Sie wahrscheinlich lesen, wie PHP Multibyte-Kodierung im Allgemeinen behandelt ...
EDIT: Nein, ich kann mir nicht vorstellen, wie man mb_split selbst machen kann, aber man schaut sich um, SO haben einige andere Fragen, die mit preg_split beantwortet wurden. Ich habe das getestet und es scheint genau das zu tun, was Sie wollen:
%Vor%Ich würde Ihnen trotzdem dringend empfehlen, sich mit Multibyte-Zeichen in PHP zu beschäftigen. Es ist eine Art Chaos, IMHO.
Hier ein paar gute Links: Ссылка und Ссылка und viel mehr kann gefunden werden ...
Tags und Links php character-encoding tokenize encoding