![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 88 Pomógł: 0 Dołączył: 4.09.2007 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Napisałem małego boota, który włazi narazie na jedną stronę i pobiera dane głównie przy pomocy preg_match_all(). Wszystko działa, informacje są zapisywane do bazy danych tylko niestety bez polskich znaków. Pojaiają się znane krzaczki, kwadraciki itp.. Strona, z której ściągam dane ma kodowaie UTF-8. Zmieniłem kodowanie plików boota, próbowałem z iconv i ze zmianami w ustawieniach DB, ale nic to nie dawało. Wszystko dalej tak samo. Szukałem na forum, znalazłem kilka wątków, ale żedane nie do końca moze mi pomóc. Z góry dziękuję wszystkim za jakąkolwiek pomoc i cierpliwość.
|
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 316 Pomógł: 36 Dołączył: 2.04.2008 Ostrzeżenie: (0%) ![]() ![]() |
Zdaje mi się, że jeśli chcesz używać polskich znaków w wyrażeniach regularnych, to powinieneś używać funkcji z przedrostkiem mb_ .
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Aby preg_ działał z wielobajtowymi zestawami znaków, dodaj flagę /u do wzorca.
PS. Zakresy a-z, czy pochodne nie zawierają polskich diakrytyków. -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 88 Pomógł: 0 Dołączył: 4.09.2007 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Wszystko w porządku. Teraz wyszukuje ciągi razem z polskimi znakami, ale źle dodaje do bazy. Nie wiem kompletnie dlaczego. Zmieniłem metodę porównywania napisów na utf8_polish_ci i nic. Co przeoczyłem?
Ten post edytował zurek 25.03.2009, 19:22:30 |
|
|
![]()
Post
#5
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
A wklep mysql kodowanie w szukajkę, to znajdziesz mnóstwo tematów.
![]() -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 88 Pomógł: 0 Dołączył: 4.09.2007 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Dziękuję ci bardzo erix. Wystarczyło dodać przy dodawaniu rekordów do bazy danych:
I dokładnie pozmieniać kodowania w pliku boota i w ustawieniach bazy. |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 211 Pomógł: 0 Dołączył: 30.03.2006 Skąd: Żary Ostrzeżenie: (0%) ![]() ![]() |
Aby preg_ działał z wielobajtowymi zestawami znaków, dodaj flagę /u do wzorca. PS. Zakresy a-z, czy pochodne nie zawierają polskich diakrytyków. Dodałem flagę u/ do wzorca, jednak funkcja preg_match_all nadal nie czyta polskich znaków. W jaki sposób je objąć, jeżeli nie przez zakres [a-z]? |
|
|
![]()
Post
#8
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat Dodałem flagę u/ do wzorca Nie tak ta flaga wygląda. ;] Pokaż cały wzorzec. Cytat W jaki sposób je objąć, jeżeli nie przez zakres [a-z]? Wpisać do klasy znaków po kolei. [a-z] nie zawiera znaków narodowych. Co by było z np. rosyjskim? ![]() -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 211 Pomógł: 0 Dołączył: 30.03.2006 Skąd: Żary Ostrzeżenie: (0%) ![]() ![]() |
Sprawdzam przez:
Otrzymuję: Kod Array
<pre>( [0] => Array ( [0] => stru [1] => p [2] => dziwiatr ) [1] => Array ( [0] => stru [1] => p [2] => dziwiatr ) ) Ten post edytował Krisu 9.06.2009, 19:26:45 |
|
|
![]()
Post
#10
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
W jakim kodowaniu masz zapisany skrypt?
-------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 211 Pomógł: 0 Dołączył: 30.03.2006 Skąd: Żary Ostrzeżenie: (0%) ![]() ![]() |
Kodowanie pliku w UTF-8 oraz dokumentu html:
Kod <?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl"> <head> <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> </head> Ten post edytował Krisu 9.06.2009, 19:38:13 |
|
|
![]()
Post
#12
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
ani \w ani [a-zA-z] nie pobierzesz polskich znakow. Musisz je dopisac w wyrazeniu regularnym albo zastosowac http://php.net/mb_ereg
-------------------- |
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 211 Pomógł: 0 Dołączył: 30.03.2006 Skąd: Żary Ostrzeżenie: (0%) ![]() ![]() |
Jednak mb_ereg działa tylko jak preg_match, a nie znajdę odpowiednika preg_match_all, pośród funkcji MB? Nie ma żadnego innego sposobu by to obejść?
|
|
|
![]()
Post
#14
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
a nie znajdę odpowiednika preg_match_all, pośród funkcji MB? A czy manual php powiedział do ciebie kiedyś "sp....... nie chcę cię tu widzieć"? Szukaj http://pl2.php.net/manual/pl/ref.mbstring.php -------------------- |
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 211 Pomógł: 0 Dołączył: 30.03.2006 Skąd: Żary Ostrzeżenie: (0%) ![]() ![]() |
niestety, ale nie widzę odpowiednika funkcji preg_match_all na tej liście, którą mi podałeś. Źle szukam, czy rzeczywiście takiego nie ma?
![]() |
|
|
![]()
Post
#16
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Ech...
Przypomnę, żeby korzystac z mb_eregi w ostatecznosci. Jezeli chodzi ci tylko o polskie znaki to juz mozna sie przemeczyc z preg_match_all Ten post edytował wookieb 9.06.2009, 21:01:53 -------------------- |
|
|
![]()
Post
#17
|
|
![]() Grupa: Zarejestrowani Postów: 211 Pomógł: 0 Dołączył: 30.03.2006 Skąd: Żary Ostrzeżenie: (0%) ![]() ![]() |
Ok, dzięki za pomoc, jednak nie tylko do polskich znaków tego potrzebuję, ale również zagranicznych, dlatego nie chciałem używać preg_match_all.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 15.06.2025 - 05:28 |