Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> mb_strlen nieprawidlowo pracuje z utf-8
deirathe
post 4.12.2008, 11:48:13
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


--------------------
Kawałek mojego blogu
Everything should be as simple as possible but not simpler.
A Einstein
Go to the top of the page
+Quote Post
JoShiMa
post 4.12.2008, 11:53:55
Post #2





Grupa: Zarejestrowani
Postów: 1 374
Pomógł: 149
Dołączył: 1.03.2006

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


A czemu nie używasz drugiego parametru określającego kodowanie?


--------------------
Go to the top of the page
+Quote Post
ndx
post 4.12.2008, 12:14:12
Post #3





Grupa: Zarejestrowani
Postów: 17
Pomógł: 6
Dołączył: 11.11.2005

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


Ustaw sobie mb_internal_encoding" title="Zobacz w manualu PHP" target="_manual i będzie grało smile.gif
Go to the top of the page
+Quote Post
deirathe
post 4.12.2008, 12:17:58
Post #4





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

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


nie podzialalo ;/ , ale znalazlem inne rozwiazanie, dzieki. Moze cos z tym zend studio nie dokonca jest wporzadku, ale to juz i tak niewazne smile.gif jeszcze raz dzieki Panowie smile.gif

Ten post edytował deirathe 4.12.2008, 12:19:30


--------------------
Kawałek mojego blogu
Everything should be as simple as possible but not simpler.
A Einstein
Go to the top of the page
+Quote Post
impressive
post 4.12.2008, 15:42:12
Post #5





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 3.12.2008

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


mb_strlen($string, 'utf8')
Go to the top of the page
+Quote Post
ucho
post 4.12.2008, 15:55:46
Post #6





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

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

 



RSS Wersja Lo-Fi Aktualny czas: 12.06.2025 - 13:03