Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> php - kodowanie utf 8
szymek116
post
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 13.07.2006

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


Witam

mam mały problem jestem zmuszony do wykorzystywania na jednej stronie znaków diakrytycznych wielu języków, problem w tym że w php mam z tym mały problem w poniższym kodzie

  1. <?php session_start(); ?>
  2. <meta name="test - blabla" http-equiv="content-type" content="text/html; charset=utf-8"/>
  3.  
  4. <?php
  5.  
  6.  
  7. $a="gęś";
  8. print "$a<br>"; // tutaj drukuje ok
  9. for ( $i = 0 ; $i < strlen ($a) ; $i++ )
  10. {
  11. print "{$a[$i]}<br>"; // a tutaj w miejsach znaków diakrytycznych wstawia dziwne znaczki
  12. }
  13. ?>


a wynik jest taki:
gęś
g





od razu pwoiem ze strona kdoowa dla pliku jest ok i przeglądarka też dobrą rozpoznaje.

z góry dzięki za jakieś podpowiedzi co z tym zrobić
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
dooshek
post
Post #2





Grupa: Zarejestrowani
Postów: 70
Pomógł: 0
Dołączył: 22.10.2003
Skąd: Trójmiasto

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


  1. <?php
  2.  
  3. mb_internal_encoding("UTF-8");
  4.  
  5. $a="gęś";
  6.  
  7. for ( $i = 0 ; $i < mb_strlen ($a) ; $i++ )
  8. {
  9.  $char = mb_substr($a, $i, 1) 
  10.  print "{$char}<br>"; 
  11. }
  12.  
  13. ?>


Powinno zadziałać. IMHO nie używaj iconv'a - iconv nie radzi sobie ze znakami (np. Wordowymi cudzysłowami) i przy konwersji z UTF na ISO obcina tekst w miejscu gdzie taki niestandardowy znak występuje... Lepiej już użyć SET NAMES latin2 przed wyciagnieciem czegokolwiek z bazy - MySQL przynajmniej w takim przypadku wstawia znak zapytania ale caly tekst sie pokazuje (nie jest obcinany).

Ogólna rada, żebyś lepiej takie czynności jak przycinanie tekstu itp. wykonywał za pomoca SQLa i pobierał juz z niego gotowe dane - tak jest proscie a MySQL np. bardzo dobrze sobie radzi z UTFem.

Nie używaj UTF-16! W tej chwili wsparcie dla tego kodowania jest slabe!

Ten post edytował dooshek 13.07.2006, 22:28:48
Go to the top of the page
+Quote Post

Posty w temacie


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: 3.10.2025 - 00:10