Griechisch bedeutet wahrscheinlich, dass Sie eine Multibyte-Codierung wie UTF-8 verwenden – und das Zählen pro Byte ist für diese nicht ganz gut.
Vielleicht mit mb_substr könnte helfen, hier : die mb_* Funktionen wurden speziell für Multi-Byte-Kodierungen erstellt.
Ich lerne jeden Tag mehr und mehr… Danke Stackoverflow!
– Boris Delormas
19. Dezember 2011 um 10:07 Uhr
Vielen Dank. Aber für mich ist die Hauptsache hinzuzufügen mb_internal_encoding("UTF-8"); vor Gebrauch mb_* Funktionen. Ohne es hinzuzufügen, sehe ich immer noch Quadrate.
– ivkremer
27. Dezember 2013 um 15:46 Uhr
@Kremchik Sie werden keine Quadrate sehen, wenn Sie verwenden mb_substr($short, 0, 75, 'utf-8'). Dann brauchen Sie nicht zu verwenden mb_internal_encoding Vor mb_substr.
– trejder
23. Juni 2014 um 12:39 Uhr
Uğur Özpinar
Verwenden mb_substr Stattdessen ist es in der Lage, mit mehreren Codierungen umzugehen, nicht nur mit Einzelbyte-Zeichenfolgen substr:
“UTF-8”-Teil war wichtig für mich – vergiss nicht, dass es piepst!
– Benutzer993683
10. Juli 2013 um 19:47 Uhr
“UTF-8” als optionaler Parameter hat bei mir funktioniert. Denken Sie daran, dass Sie möglicherweise auch mb_strlen() verwenden möchten, wenn Sie die Zeichenfolgenlänge verwenden, um festzustellen, ob sie geschnitten werden muss.
– Kent Munthe Caspersen
15. Juli 2013 um 11:20 Uhr
Eine Alternative ist die Verwendung mb_internal_encoding('utf-8') vor irgendwelchen mb_* Befehl.
– trejder
23. Juni 2014 um 12:40 Uhr
Sieht aus, als würden Sie dort ein Unicode-Zeichen in zwei Hälften schneiden. Verwenden mb_substr stattdessen für Unicode-sicheres String-Slicing.
…mit Anruf mb_internal_encoding('utf-8') vor oder mit der Verwendung 'utf-8' als vierte Parameter von mb_substr. Doc sagt, dass es optional ist und wenn es weggelassen wird, wird der interne Zeichencodierungswert verwendet, aber der Gedanke ist (an anderer Stelle im PHP-Dokument erklärt), dass die „interne Codierung“ von PHP fast immer „etwas anderes“ als Ihre ist Seitencodierung. Also zum Schneiden von UTF8-Strings dieser vierte Parameter oder Aufruf mb_internal_encoding('utf-8') erforderlich wird.
– trejder
23. Juni 2014 um 12:42 Uhr
Mussawi7
Verwenden Sie diese Funktion, es hat für mich funktioniert
ms_substr() funktioniert auch hervorragend, um seltsame Zeilenumbrüche zu entfernen, mit denen ich nach dem Parsen von HTML-Code Probleme hatte. Das Problem wurde NICHT gelöst von:
Habe dasselbe in (britischem) Englisch gesehen.
– Alimack
25. August 2014 um 11:03 Uhr