Wie bekomme ich jedes Zeichen aus einem Wort mit spezieller Kodierung?

8

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) "á"}

    
leticia 21.11.2012, 20:42
quelle

4 Antworten

3

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.

    
Tim Withers 21.11.2012, 20:52
quelle
2

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 ...

    
Aerik 21.11.2012 20:46
quelle
0

wie gefunden auf: Ссылка

%Vor%     
Slavenko Miljic 21.11.2012 20:52
quelle
0

Du solltest die Multibyte-Funktionen für alle Multibyte Charsets verwenden! Ich denke mb_split ist der Anhänger:

Ссылка

    
wegus 21.11.2012 20:51
quelle