![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 49 Pomógł: 2 Dołączył: 17.01.2004 Ostrzeżenie: (0%) ![]() ![]() |
Mam następujący problem. String w UTF8 i chcę go przejść po literce niestety z polskimi znakami mam krzaczki.
Przykład:
Wynik
Jakieś pomysły? Sugestie. Wiem że UFT8 zajmuje po da bity na każdą literkę ale nie wiem jak to zgrabnie przeliterować, bez użycia konwersji do ISO wcześniej |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 51 Pomógł: 1 Dołączył: 1.02.2005 Ostrzeżenie: (0%) ![]() ![]() |
utf8 nie zajmuje dwoch bajtow na kazda litere, tylko od jednego do czterech. W php5 nie da sie tego obejsc bez napisania wlasnej funkcji, ktora pojdzie literka po literce i walnie to wszystko do jakiejs tablicy ktora potem mozesz manipulowac. Nie jest to specjalnie trudne jak sie zna bitwise operators, ale tak czy inaczej wymaga troche czasu. Jak nie chcesz sam do tego dochodzic, to polecam phputf8.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 49 Pomógł: 2 Dołączył: 17.01.2004 Ostrzeżenie: (0%) ![]() ![]() |
utf8 nie zajmuje dwoch bajtow na kazda litere, tylko od jednego do czterech. W php5 nie da sie tego obejsc bez napisania wlasnej funkcji, ktora pojdzie literka po literce i walnie to wszystko do jakiejs tablicy ktora potem mozesz manipulowac. Nie jest to specjalnie trudne jak sie zna bitwise operators, ale tak czy inaczej wymaga troche czasu. Jak nie chcesz sam do tego dochodzic, to polecam phputf8. Dzięki wielkie, fajna biblioteka. W między czasie znalazłem polską produkcję: Biblioteka do operacji na ciągach znaków w UTF-8 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 243 Pomógł: 32 Dołączył: 14.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
Można też wykorzystać funkcje udostępniane przez moduł iconv
-------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 398 Pomógł: 10 Dołączył: 24.11.2004 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
-------------------- |
|
|
![]()
Post
#6
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%) ![]() ![]() |
a nie prościej użyć standardowej biblioteki mbstring ? i funkcji mb_substr() ?
-------------------- - Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... - |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 51 Pomógł: 1 Dołączył: 1.02.2005 Ostrzeżenie: (0%) ![]() ![]() |
Mbstring moze byc wlaczone na serwerze lub moze na nim wlaczone nie byc. Mialem do czynienia z serwerem ktory mial na PHP5 wylaczone iconv, no i oczywiscie wlaczenie iconv rowniez opcja nie bylo. Jezeli aplikacja ma dzialac na wielu serwerach, to trzeba sie troche pomeczyc samemu i przynajmniej zrobic handler ktory bedzie korzystal z iconv jezeli jest dostepne lub z phputf8 jezeli nie jest.
Oczywiscie jezeli ma sie pewnosc ze ta aplikacja bedzie uzywana tylko na jednym serwerze, i jest na nim iconv lub mbstring to sprawa wyglada inaczej.. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 18.07.2025 - 00:47 |