Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Norweskie znaki
Forum PHP.pl > Forum > PHP
Gitrix
plik cfg.php
  1. <?php
  2. mysql_connect('mysql.cba.pl', 'xxxx', 'xxxxx') or die('Server error');
  3. mysql_select_db('codew_c0_pl') or die('Base error');
  4. mysql_query('SET NAMES utf8');
  5. mysql_query('SET CHARACTER SET utf8');
  6. mysql_query('SET collation_connection = utf8_general_ci');
  7. ?>

  1. ...
  2. <meta charset="utf-8">
  3. ...
  4. </head>
  5. ..


  1. <?php
  2.  
  3. $i = 1;
  4. if($_COOKIE['lang']=="no") $q = mysql_query('SELECT * FROM ome');
  5. else $q = mysql_query('SELECT * FROM sitemenu');
  6. while($r = mysql_fetch_assoc($q))
  7. {
  8. $url[$i] = $r['url'];
  9. $name[$i] = $r['name'];
  10. $i++;
  11. }
  12.  
  13. ?>
  14.  
  15. <?php
  16. echo "<li><a class='active' href='$url[1]'>$name[1]/a></li>";
  17. echo "<li><a href=$url[2]>$name[2]</a></li>";
  18. echo "<li><a href=$url[3]>$name[3]</a></li>";
  19. echo "<li><a href=$url[4]>$name[4]</a></li>";
  20. echo "<li><a href=$url[5]>$name[5]</a></li>";
  21. echo "<li class='last'><a href=$url[6]>$name[6]</a></li>";
  22. ?>


Coś robię źle?

Dodam, że po wpisaniu norweskiego znaku bezpośrednio w notatnik np "?", to wczytuje bez problemu. Natomiast znaki norweskie wczytane z bazy danych już się nie wyświetlają nawet jak zmienię utf-8 na iso-8859-1 czy jakoś tak.
franki01
1.
Kod
set names 'utf8' collate 'utf8_unicode_ci'
zamiast Twojego use names.
2. Staraj się korzystać z utf_8_unicode_ci zamiast utf_8_general_ci. To samo dotyczy tabel.
3. ---

EDYCJA:
4. I jeszcze jedno. Jeśli używasz phpmyadmina albo podobnego do edycji tabel, upewnij się, że masz ustawione tam odpowiednie kodowanie. Masz to do ustawienia zaraz po zalogowaniu jako "Metoda porównywania napisów".

EDYCJA 2: Usunięto trzeci punkt zgodnie z zaleceniami Panów poniżej smile.gif
Fred1485
@up

Nie wiem czy teraz głupoty nie powiem, ale zalecasz stosowanie

  1. <meta http-equiv="content-type" content="text/html; charset=utf-8" />


gdy w obecnych czasach w dobie html5 zaleca się stosowanie

  1. <meta charset="utf-8">
Pyton_000
Cytat(franki01 @ 3.07.2016, 19:01:47 ) *
2. Staraj się korzystać z utf_8_unicode_ci zamiast utf_8_general_ci. To samo dotyczy tabel.

Jakieś argumenty?
PrinceOfPersia
czy ty przypadkiem hasła tam nie ujawniłeś w poście?
(mam nadzieję, że dałeś tam zmyślone dane)
Gitrix
Stworzyłem osobną bazę z tymi samymi danymi i podałem, abyście zobaczyli, czy dobrze zrobiłem kodowanie. Cóż, ktoś się pokusił i skasował wszystko, więc raczej nie przydała się wam za bardzo przy diagnozowaniu problemu - mentalność polaczków. Tak czy inaczej - zmieniłem wszystko na utf8_unicode_ci i zdaje się, że jest to samo.
viking
Poprawnym sposobem dla mysql jest http://php.net/manual/pl/function.mysql-set-charset.php
Sprawdź w przeglądarce jakie wysyłasz nagłówki i czy strona jest zapisana w UTF-8.
Gitrix
Cytat(viking @ 7.07.2016, 12:08:49 ) *
Poprawnym sposobem dla mysql jest http://php.net/manual/pl/function.mysql-set-charset.php
Sprawdź w przeglądarce jakie wysyłasz nagłówki i czy strona jest zapisana w UTF-8.

Nie bardzo rozumiem.

Dodam też, że stworzyłem dla testu pustą stronę

  1. <meta charset="utf-8">
  2. <?php
  3. include "cfg.php";
  4. $q = mysql_query('SELECT * FROM test');
  5. echo $r['tekst'];
  6. ?>


Jak również w tym przypadku
  1. <meta charset="utf-8">
  2. <?php
  3. include "cfg.php";
  4. $i = 1;
  5. if($_COOKIE['lang']=="no" OR $lang=="no") $q = mysql_query('SELECT * FROM ome');
  6. else $q = mysql_query('SELECT * FROM sitemenu');
  7. while($r = mysql_fetch_assoc($q))
  8. {
  9. $url[$i] = $r['url'];
  10. $name[$i] = $r['name'];
  11. $i++;
  12. }
  13.  
  14. ?>
  15.  
  16. <?php
  17. echo "<li><a class='active' href='$url[1]'>$name[1]</a></li>";
  18. echo "<li><a href=$url[2]>$name[2]</a></li>";
  19. echo "<li><a href=$url[3]>$name[3]</a></li>";
  20. echo "<li><a href=$url[4]>$name[4]</a></li>";
  21. echo "<li><a href=$url[5]>$name[5]</a></li>";
  22. echo "<li class='last'><a href=$url[6]>$name[6]</a></li>";
  23. ?>


I tu wczytuje znaki poprawnie.
viking
Wstaw do pliku jako pierwszą linię <?php header('Content-type: text/html; charset=UTF-8'); ?>
W cfg.php wyrzuć wszystkie query w liniach 4-6 i zastąp podaną funkcją.
Zmień też mysql na mysqli.
Gitrix
Sprawa rozwiązana - usunąłem wszystkie javascript ze strony i zaczęło działać.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.