Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP][SQL] Problem z kodowaniem
edzio27
post
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 2
Dołączył: 17.09.2011

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


Witam.

Któryś dzień meczę sie z kodowaniem w mojej bazie danych. Stworzyłem aplikacje która zczytuje zawartość stony html i zapisuje ją do rekordu w tabeli bazy danych. Korzystam z localhosta przy pomocy XAMPP wersja 1.7.2. Problem polega na zapisywaniu krzaków w bazie. Posiadam następujące kodowania:
baza danych: utf8_general_ci
tabela: utf8_general_ci
System porównań dla połączenia MySQL: utf8_polish_ci
W skrypcie mam ustawione: <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Dając w skrypcie komende:

  1. echo $mysql->character_set_name();

Wypisuje mi:

  1. latin1


Jeżeli dodatkowo w swoim skrypcie ustawię mysql->set_charset("utf8") to wtedy stronę zapisuje w bazie do pierwszej napotkanej polskiej litery a reszte wywala.

Prosiłbym o wskazówki co robie nie tak (IMG:style_emoticons/default/nerdsmiley.png)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
sliwa007
post
Post #2





Grupa: Zarejestrowani
Postów: 69
Pomógł: 7
Dołączył: 18.08.2010
Skąd: Rzeszów

Ostrzeżenie: (10%)
X----


jak łączysz się z bazą danych to dodaj:

  1. mysql_query("SET NAMES 'utf8'");


czyli:

  1. mysql_connect('localhost', $user, $password);
  2. @mysql_select_db($database) or die ("Nie udalo sie wybrac bazy danych");
  3. mysql_query("SET NAMES 'utf8'");
Go to the top of the page
+Quote Post
Damonsson
post
Post #3





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

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


A przy łączeniu się z bazą danych ustawiasz kodowanie?

@up to miałem na myśli, kolega mnie uprzedził (IMG:style_emoticons/default/tongue.gif)

Ten post edytował Damonsson 31.10.2011, 17:27:48
Go to the top of the page
+Quote Post
edzio27
post
Post #4





Grupa: Zarejestrowani
Postów: 9
Pomógł: 2
Dołączył: 17.09.2011

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


@ sliwa007, Damonnson

Po wpisaniu komendy :

  1. $abc = mysqli_connect( 'localhost', 'root', 'pass');
  2. $abc->select_db('data') or die ("Nie udalo sie wybrac bazy danych");
  3. mysqli_query("SET NAMES 'utf8'");


ciągle mam krzaki w bazie typu:

(IMG:http://img641.imageshack.us/img641/7782/17437117.png)


Ten post edytował edzio27 31.10.2011, 18:04:12
Go to the top of the page
+Quote Post
-syngress-
post
Post #5





Goście







Na początku skryptu wbij sobie:

  1. mysql_query('SET CHARACTER SET latin2');
  2. mysql_query('SET collation_connection = latin2_general_ci');
Go to the top of the page
+Quote Post
edzio27
post
Post #6





Grupa: Zarejestrowani
Postów: 9
Pomógł: 2
Dołączył: 17.09.2011

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


Niestety nie pomogło (IMG:style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
Damonsson
post
Post #7





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

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


No a jak zrobisz to co napisał @sliwa007 i dasz echo, to jakie masz kodowanie?
Go to the top of the page
+Quote Post
edzio27
post
Post #8





Grupa: Zarejestrowani
Postów: 9
Pomógł: 2
Dołączył: 17.09.2011

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


Robie takie coś:

  1. $mysqli=new mysqli('localhost', 'root', 'pass', 'data');
  2. $mysqli->query("SET NAMES 'utf8'");
  3.  
  4. $charset = mysqli_character_set_name($mysqli);
  5. printf ($charset);


i otrzymuję:

  1. latin1


W czym jest problem że nie chce mi ustawić kodowania na utf8 ? (IMG:style_emoticons/default/ohmy.gif)
Go to the top of the page
+Quote Post
Damonsson
post
Post #9





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

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


a spróbuj to: mysqli_set_charset($mysqli, "utf8")

Ten post edytował Damonsson 1.11.2011, 13:14:35
Go to the top of the page
+Quote Post
edzio27
post
Post #10





Grupa: Zarejestrowani
Postów: 9
Pomógł: 2
Dołączył: 17.09.2011

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


Witam.
Chcaiłbym wrócić do tematu gdyż ciągle nie udało mi się rozwiązać kwesti złego kodowania. Wcześniej widziałem że rekordy są źle zapisywane w bazie, a teraz zauważyłem że bez łączenia z bazą są źle wyświetlane w przeglądarce. Więc chwilowo kodowanie bazy możemy olać. Ustawione mam:
- kodowanie pliku utf8 bez boom
- ustawione <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Problem leży gdzieś po stronie XAMPP-a, wydaje mi się że w ustawieniach php.

Czy ktoś może zarzucić jakimiś trafnymi podpowiedziami?

Pozdrawiam Edzio27
Go to the top of the page
+Quote Post

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: 2.10.2025 - 18:15