• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Brak polskich znaków w MySql

Object Storage Arubacloud
+2 głosów
6,286 wizyt
pytanie zadane 17 czerwca 2016 w SQL, bazy danych przez Mr Popcorn Bywalec (2,340 p.)
zamknięte 18 czerwca 2016 przez Mr Popcorn

Kłaniam się z góry, jak rzadko który...

Mimo iż mam WSZĘDZIE ustawione kodowanie na UTF-8, to w mojej bazie nie pokazują się polskie znaki.

 

<?php
  	mb_http_input("utf8");
	mb_http_output("utf8");
	
	$db_host = "localhost";
	$db_user = "mrpopcorn";
	$db_pass = "mrpopcorn";
	$db_name = "vtc";

	$polaczenie = new MySQLi($db_host,$db_user,$db_pass,$db_name);
	$polaczenie->set_charset("utf8");
	
	$polaczenie->query("SET NAMES 'utf8' COLLATE 'utf8_polish_ci'");
	$polaczenie->query("SET CHARSET utf8");

	if(!$polaczenie) {
		die("NIE UDAŁO SIĘ POŁĄCZYĆ Z BAZĄ DANYCH");
	}
?>

 

<?php 
if (!mysqli_set_charset($polaczenie, "utf8")) {
		die("Wystąpił problem z kodowaniem UTF-8.");
		exit();
	}
?>

Już naprawdę nie wiem co robić.

Zrobiłem już wszystko co się zrobić dało.

Teraz tylko polska literka "ó" się nie chce wyświetlić
tam są słowa żółć i źdźbło

 

komentarz zamknięcia: Problem rozwiązano. Dziękuje.

4 odpowiedzi

+1 głos
odpowiedź 17 czerwca 2016 przez Tomasz90 Nałogowiec (25,140 p.)

bazę tworzyłeś w ten sposób?

 

CREATE DATABASE mydb
  DEFAULT CHARACTER SET utf8
  DEFAULT COLLATE utf8_general_ci;

 

ja tak tworzylem przez wiersz poleceń i miałem polskie znaki

komentarz 17 czerwca 2016 przez Mr Popcorn Bywalec (2,340 p.)

 

Ja nie, ja stworzyłem bazę ręcznie w PMA.

 

 

Dodam, że używam funkcji htmlentities, podobno to ona psuje polskie znaki...

komentarz 17 czerwca 2016 przez Tomasz90 Nałogowiec (25,140 p.)
ja się na php nie znam ale jak wywołanie tej funkcji u Ciebie wygląda. W sensie czy jako 3 parametr podajesz UTF-8 ?
+1 głos
odpowiedź 17 czerwca 2016 przez GaCeL Dyskutant (7,500 p.)

Użyj 

htmlspecialchars($string, ENT_QUOTES, "UTF-8")

 

komentarz 17 czerwca 2016 przez Mr Popcorn Bywalec (2,340 p.)
też nie zadziałało
0 głosów
odpowiedź 18 czerwca 2016 przez Mr Popcorn Bywalec (2,340 p.)
Odświeżam temat. Bardzo potrzebuję Waszej pomocy. Stoję teraz z projektem w miejscu.
komentarz 18 czerwca 2016 przez obl Maniak (51,280 p.)
Moje pytanie jest takie: czy jak tworzyłeś swoją bazę danych od razu wybrałeś kodowanie utf8_polish_ci? Czy dopiero później zmieniłeś to kodowanie na poprawne?

Pytam bo ja z ciekawości u siebie zrobiłem oddzielną bazę danych i mam poprawnie obsłużone polskie znaki. Pamiętam też, że kiedyś też się szarpałem z tym, niby wszystko poprzestawiałem ręcznie na odpowiednie kodowanie a i tak wyskakiwały mi tylko krzaczki zamiast polskich liter. Po utworzeniu nowej bazy z poprawnie ustawionym na samym początku kodowaniem problem w końcu u mnie został rozwiązany. Spróbuj zrobić jakąś oddzielną małą bazę i na początku samym gdy ją tworzysz daj kodowanie utf8_polish_ci.
komentarz 18 czerwca 2016 przez Mr Popcorn Bywalec (2,340 p.)

Dziękuje Ci obl...

W momencie tworzenia bazy danych, jako Collation ustawiłem utf8_bin.
Potem zmieniłem wszystko na utf8_polish_ci ale baza nadal nie wyświetlała polskich znaków, zarówno w tych starych wpisach, jak tych świeżo dodanych, już po zmianie kodowania.

Wkurzyłem się i usunąłem tą bazę, stworzyłem nową wybierająć utf8_polish_ci i wszystko działa jak należy.

komentarz 18 czerwca 2016 przez obl Maniak (51,280 p.)

No niestety ja też siedziałem kiedyś przez to kilka godzin przed kompem i mnie normalnie nerwy nosiły że masakra. W końcu spróbowałem zrobić oddzielną bazę, żeby sprawdzić czy to przez to i wtedy zrozumiałem, że tak, to przez to.

–2 głosów
odpowiedź 17 czerwca 2016 przez obl Maniak (51,280 p.)
edycja 17 czerwca 2016 przez obl

Ja u siebie utworzyłem bazę danych w phpMyAdmin z wybranym kodowaniem utf8_polish_ci  a następnie połączyłem się z bazą danych:

$dbc = @mysql_connect(DB_HOST, DB_USER, DB_PASSWORD) OR die ('Nie mogłem połączyć się z MySQL-em: ' . mysql_error() );
@mysql_select_db(DB_NAME) OR die ('Nie udało mi się wybrać bazy danych: ' . mysql_error() );
mysql_query ("SET NAMES utf8");
				
$table = mysql_query("SELECT * FROM test1");
				
while($linia = mysql_fetch_array($table)){
	echo('<p>' . $linia['description'] . '</p>');
}
				
mysql_close($dbc);

Dzięki czemu wyświetliła mi się na ekranie zawartość pola descritpion tabeli test1, w którym zapisałem: zażółć gęślą jaźń i napis wyświetlił się prawidłowo (z polskimi literkami).

komentarz 17 czerwca 2016 przez majfirst Obywatel (1,200 p.)
@ and mysql_* srsly?

Podobne pytania

0 głosów
1 odpowiedź 1,176 wizyt
pytanie zadane 8 lipca 2016 w PHP przez Adrian1999 Nałogowiec (34,570 p.)
0 głosów
0 odpowiedzi 679 wizyt
pytanie zadane 1 sierpnia 2018 w PHP przez lukii1717 Nowicjusz (140 p.)

92,589 zapytań

141,439 odpowiedzi

319,696 komentarzy

61,974 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...