Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> 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
JoShiMa
post
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
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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
deirathe
post
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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) jeszcze raz dzieki Panowie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował deirathe 4.12.2008, 12:19:30
Go to the top of the page
+Quote Post
impressive
post
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
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
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 00:30