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

excel do csv do phpmyadmin z polskimi znakami oraz znakami specjalnymi

VPS Starter Arubacloud
0 głosów
1,608 wizyt
pytanie zadane 2 listopada 2018 w SQL, bazy danych przez Gucci93 Użytkownik (570 p.)

Do mojego projektu używam bazy, którą tworzę w excelu, następnie zapisuję jako plik csv i importuję w phpmyadmin. Używam polskich znaków i znaków specjalnych.

Zapisuję plik w excelu jako csv oddzielony przecinkami, importuję w phpmyadmin z kodowaniem windows-1250. Wtedy w bazie widzę dane z polskimi znakami i znakami specjalnymi ale na stronie już się krzaczy - strona jest w utf-8 więc jest to zrozumiałe.

+

Próbuję więc zapisać jako csv i potem w notepadzie++ zmieniam kodowanie, nie mogę wówczas w ogóle zaimportować pliku:

Próbowałem też w ustawieniach excela ustawić kodowanie na utf-8 i zapisać jako csv ale w bazie wygląda to w ten sposób:

 

Metoda porównywania napisów w opcjach tabeli jest ustawiona na utf8_polish_ci, w bazie także.

Kod ze strony, w której wyświetlam parametry z bazy:

<!DOCTYPE HTML>
<html lang="pl">

<head>
	<meta charset="utf-8" />
	<title>Test</title>
	<meta name="description" content="Co jest na stronie" />
	<meta name="keywords" content="test" />
	<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
	<link rel="stylesheet" href="style.css" type="text/css" />


</head>

<body>

	<?php


			 require_once "connect.php";



 	    $polaczenie = @new mysqli($host, $db_user, $db_password, $db_name);
 	    $dupa = "V40";

 	    if ($polaczenie->connect_errno!=0)
 	    {
 	        echo"Error: ".$polaczenie->connect_errno."Opis: ".$polaczenie->connect_error;


 	    }

 	    else

 	    {
 	        

		





	 				 $sql = "SELECT * FROM `table 13` WHERE id='1'";
	 			

	 						if ( $rezultat = @$polaczenie->query($sql))
	 						{


	 							$liczba_rekordow=$rezultat->num_rows;
	 			echo $liczba_rekordow;
	 								if ($liczba_rekordow>0)

	 								{


						 $wiersz = $rezultat->fetch_assoc();



$Kolumna1 = $wiersz['kolumna1'];


$Kolumna2 = $wiersz['kolumna2'];

$Kolumna3 = $wiersz['kolumna3'];


echo $Kolumna1;
echo '<br/>';
 echo $Kolumna2;
echo '<br/>'; 
echo $Kolumna3;


 	               }





 	           }

}

 	       $polaczenie->close();
 	    



echo<<<END
	<div id="container">

		<div id="logo">

		<h1>Nazwa strony</h1>

		</div>

		<div id="add">
		reklama
		</div>


		<div id="content">
		<br/><br/><br/><br/><br/><br/><br/><br/>
END;


?>






	<div id="footer">
		nazwastrony.com &copy; Wszelkie prawa zastrzeżone
	</div>



</body>

</html>

 

1 odpowiedź

0 głosów
odpowiedź 3 listopada 2018 przez obl Maniak (51,280 p.)
wybrane 5 listopada 2018 przez Gucci93
 
Najlepsza

Skoro dane w bazie danych wyświetlają się poprawnie dla tych, które masz zakodowane w windows-1250 to znaczy, że dane w tabeli nie są przechowywane w utf-8. Czyli metoda porównywania napisów jest źle ustawiona bo powinna być ustawiona na stronę kodową, w której w tabeli dane są przechowywane.

komentarz 3 listopada 2018 przez Gucci93 Użytkownik (570 p.)

Ale rozumiem, że skoro na stronie mam kodowanie utf-8 to powinienem wgrać do bazy plik csv z kodowaniem utf-8? Tak jak pisałem wyżej mam problem z wgrywaniem utf-8 ;/

komentarz 3 listopada 2018 przez obl Maniak (51,280 p.)

Zapisuję plik w excelu jako csv oddzielony przecinkami, importuję w phpmyadmin z kodowaniem windows-1250. Wtedy w bazie widzę dane z polskimi znakami i znakami specjalnymi ale na stronie już się krzaczy - strona jest w utf-8 więc jest to zrozumiałe.

To oznacza, że dane są w twojej tabeli przechowywane jako windows-1250, miałem kiedyś problem z kodowaniem i nie zmienisz już tego po utworzeniu tabeli.

Poza tym ja bym użył PDO do łączenia z bazą w taki sposób:

    <?php
    $mysql_host = 'localhost'; //tutaj jest localhost ale może być adres do bazy danych
    $port = '3306'; // domyślny numer portu
    $username = 'login';
    $password = 'hasło';
    $database = 'nazwa_bazy';
    try{
        $pdo = new PDO('mysql:host=' . $mysql_host . ';dbname=' . $database . ';port=' . $port . ";charset=utf8", $username, $password );
        echo('<p>Houston mamy połączenie!</p>');
    }catch(PDOException $e){
        echo('<p>Houston mamy problem! Nie możemy się połączyć!</p>');
        die(); // Nie połączyłeś się? To nie ma co robić nic więcej!
    }
    ?>

Masz tutaj charset=utf8 co powoduje, że dane z bazy danych zamieniane są do kodowania UTF-8

komentarz 5 listopada 2018 przez Gucci93 Użytkownik (570 p.)

Można też dodać do mojego kodu 

mysqli_set_charset($polaczenie,"utf8");

I są polskie znaki :) Dzięki za pomoc!

komentarz 6 listopada 2018 przez obl Maniak (51,280 p.)
No właśnie zapomniałem o tym, bo już nie używam mysqli

Podobne pytania

0 głosów
0 odpowiedzi 985 wizyt
pytanie zadane 28 sierpnia 2018 w SQL, bazy danych przez czujek22 Dyskutant (7,670 p.)
0 głosów
1 odpowiedź 287 wizyt
pytanie zadane 24 kwietnia 2020 w SQL, bazy danych przez progNewbie Obywatel (1,130 p.)
0 głosów
0 odpowiedzi 121 wizyt

92,451 zapytań

141,261 odpowiedzi

319,073 komentarzy

61,853 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...