Erhalte das erste Zeichen der UTF-8-Zeichenfolge

8

Ich bekomme eine UTF-8-Zeichenfolge von db und versuche, das erste Zeichen zu wiederholen:

$ title = $ model- & gt; Titel; echo $ title [0];

Ich bekomme:

Was ist los? Danke!

    
Nick_NY 22.11.2012, 08:58
quelle

4 Antworten

10

Es gibt mehrere Dinge, die Sie beachten sollten:

  1. Überprüfen Sie, ob die Daten in der Datenbank als UTF-8
  2. gespeichert sind
  3. Überprüfen Sie, ob die Client-Verbindung zur Datenbank in UTF-8 ist (zum Beispiel in mysql: Ссылка )
  4. Stellen Sie sicher, dass der Content-Typ der Seite als UTF-8 definiert ist [Sie können header ('Content-Type: utf-8') verwenden; ]
  5. Versuchen Sie, die interne Kodierung mit mb_internal_encoding ("UTF-8") einzustellen;

hth

    
Paul S 22.11.2012, 09:07
quelle
21
%Vor%

Sie müssen die Multibyte-Zeichenfolgenfunktionen von PHP verwenden, um Unicode-Zeichenfolgen richtig zu handhaben:

Ссылка

Ссылка

Sie müssen außerdem die Zeichenkodierung in <head> Ihres HTML angeben:

%Vor%

oder:

%Vor%     
Botond Balázs 22.11.2012 08:59
quelle
8

Wie bereits in anderen Fragen erwähnt, versteht PHP beim Versuch, einen Teilstring zu erhalten, nicht Multibyte-Zeichen (wie Sie zB mit UTF8 erhalten).

Was die anderen Antworten nicht erwähnen, ist, dass Sie die Codierung angeben sollten, die Sie für den mb_substr verwenden möchten

Also zum Beispiel benutze ich das:

%Vor%     
Layke 20.10.2013 20:21
quelle
4

PHP-Strings verstehen Multibyte-Strings standardmäßig nicht, die Array-ähnliche Indizierung hackt das erste Byte und wenn das nicht im Ascii-Bereich ist, erhalten Sie dieses Ergebnis.

Verwenden Sie die Methode mb_substr .

    
complex857 22.11.2012 09:00
quelle

Tags und Links