Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> PHP-MYSQL Jak ograniczyć polskie znaki które ukazują się z błędem?
przem1969
post
Post #1





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 18.08.2013

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


Mam na portalu swoim takie zapytanie z Bazy




  1. SELECT id,timestamp, SUBSTRING(title,1,56) AS 'title_substring'
  2. FROM tabela
  3. ORDER BY id DESC
  4. LIMIT 26,25 ;
  5.  


  1. $result=mysql_query($query);
  2. $num=mysql_numrows($result);
  3. $i=0;
  4. while ($i < $num) {
  5. $id=mysql_result($result,$i,"id");
  6. $timestamp =mysql_result($result,$i,"timestamp");
  7. $title_substring=mysql_result($result,$i,"title_substring");
  8. $timestamp = date("d.m.Y, H:i:s", $timestamp);





To zapytanie działa prawidłowo ! Lecz gdy natrafia na polski znak wyświetla się rąb ze znakiem zapytania. Jak to opisać w php? pewnie już ktoś miał taki problem .

Ten post edytował przem1969 1.09.2013, 19:05:31
Go to the top of the page
+Quote Post
jackraymund
post
Post #2





Grupa: Zarejestrowani
Postów: 217
Pomógł: 21
Dołączył: 10.06.2011
Skąd: Głogów

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


jest kilka rzeczy które mogłeś pominąć
po 1 wybrać formatowanie, polecam utf-8
wtedy w każdym pliku zmienić formatowanie na utf-8
na stronie do nagłówka dodać formatowanie utf-8
i na końcu zaraz po zalogowaniu do bazy wykonać takie zapytanie
  1. mysql_query("SET NAMES UTF8");


Ten post edytował jackraymund 1.09.2013, 20:00:20


--------------------
Wykonuje zlecenia na pobieranie danych ze stron i różne boty.
Go to the top of the page
+Quote Post
przem1969
post
Post #3





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 18.08.2013

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


Wydaje mi się ,że mnie nie rozumiesz. Na strinie jest kodowanie UTF8 .Nie jestem aż taki oststni. W bazie też. http://siatkowkaweb.pl rozwń menu w belce na dole. Trzeci artukuł własnie się tak zachowuje.
Go to the top of the page
+Quote Post
kiciafu
post
Post #4





Grupa: Zarejestrowani
Postów: 52
Pomógł: 0
Dołączył: 11.05.2010

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


Ja robię tak:

1. kodowanie plików ANSI As UTF-8
2. Deklaracja utf w osnowie dokumentu html
3. Baza danych utf-8 i collation polish
4. Koniecznie zapytanie po połączeniu mysql_query("SET NAMES UTF8");
jak to jest ustawione mysql zwróci na 99% dobry rezultat, ostatnio walczyłem z dodatkowymi bibliotekami i tylko taka droga zagwarantowała sukces.
Go to the top of the page
+Quote Post
przem1969
post
Post #5





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 18.08.2013

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


Dziękuję będe walczył !
Go to the top of the page
+Quote Post
valkirek
post
Post #6





Grupa: Zarejestrowani
Postów: 117
Pomógł: 6
Dołączył: 24.07.2013

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


Możliwe, że masz coś ze złym kodowaniem jednak tu nie tylko chodzi o mysql bo w php z funkcją substr() jest podobnie
  1. <?php echo substr('ał',0,2); ?>


U mnie wyświetla a i ten znak rombu ze znakiem zapytania. Zauważyłem to dawno temu ale nigdy się w ten problem nie zagłębiałem, kodowanie zawsze mam na utf 8 i to samo miałem na różnych hostingach.
Go to the top of the page
+Quote Post
przem1969
post
Post #7





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 18.08.2013

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


Cały portal wyświetla dobrze . Polskie znaki są wszędzie. Z bazy zaciąga artykuły też jest ok .Wydaje mi się ,żę jest wszytsko ok. Dzieje się to wtedy jak zauważyłeś kiedy wyciągam z bazy np. tytuły i skracam ich długość funkcją substring. Jeśli w czasie skrótu natrafi na polski znak to go źle interpretuej "jako błąd" Według Ciebie co mam poprawić w kodowaniu?
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




@valkirek bo w php funkcja substr dziala na pojednyczych bajtach, a polskie znaki maja dwa bajty wiec jak trafia na podwojny polski znak to go scina w polowie i bierze krzaka - normalka. By tego uniknac nalezy w php operowac na funkcjach z rodziny mb_, np mb_substr
http://pl1.php.net/manual/en/function.mb-substr.php

@przem1969 uzyj google: mysql substring utf8


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
przem1969
post
Post #9





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 18.08.2013

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


Dziękuje Panie Moderatorze. Wiedziałem ,żę jest taka funkcja w Php ale nie potrafię jej zastosowac. Nie jestm az taki dobry. MUSZE rozkminić to. Ale trening czyni mistrza więc sobie poradzę.!!Dziękuje.

Ten post edytował przem1969 2.09.2013, 20:03:30
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 Aktualny czas: 20.08.2025 - 23:25