Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> mb_strlen nieprawidlowo pracuje z utf-8
deirathe
post
Post #1





Grupa: Zarejestrowani
Postów: 426
Pomógł: 32
Dołączył: 24.05.2007

Ostrzeżenie: (0%)
-----


Witam, kiedy uzywam kodowania utf-8: pliki sa w utf zapisane- pracuje na zend studio. To gdy mam:
  1. <?php
  2. class Library {
  3.    public static function simpleUrl($string) {
  4.        for($i = 0; $i < mb_strlen ( $string ); $i ++) {
  5.            echo $string[$i]."<br/>";
  6.            
  7.        }
  8.        
  9.    }
  10. }
  11. ?>

i wykonam :
  1. <?php
  2. Library::simpleUrl("zażółcić gęślą żółć");
  3. ?>

to nie dostaje poszczegolnych liter tylko polskie ogonki sa dzielone na pol, z strlen dzieje sie to samo ;/
Jezeli ktos zna przyczyne to prosze o pomoc. Dzieki z gory

Ten post edytował deirathe 4.12.2008, 11:48:42
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
ucho
post
Post #2





Grupa: Zarejestrowani
Postów: 300
Pomógł: 32
Dołączył: 31.07.2006

Ostrzeżenie: (0%)
-----


Nie w porządku jest to
Kod
echo $string[$i]
bo zawsze zwróci tylko jeden bajt, zamiast całego znaku w utf8. Zgaduje że poprawnie by było
Kod
echo mb_substr($string,$i,1)

Podobnie jak w tym komentarzu http://pl2.php.net/manual/pl/function.mb-strwidth.php#80926

Ten post edytował ucho 4.12.2008, 15:56:09
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.12.2025 - 11:29