Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

4 Stron V  < 1 2 3 4 >  
Reply to this topicStart new topic
> [MYSQL] Polskie znaki
kupilemsobieksia...
post 19.12.2009, 00:02:03
Post #21





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

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


Znowu źle ;/ Jak w IE dobrze, to OPERA się sypie... Albo na odwrót. Mam problem z zapisem do pliku tekstowego (nawet nie tyle, że źle odczytuje)... Ma problem z odczytaniem czegoś takiego "\n" i na pewno jest to dobrze, bo to przykład z książki. Podejrzewam, że to wszystko ściśle powiązane... A uczę się od środy.
Go to the top of the page
+Quote Post
thomson89
post 19.12.2009, 10:37:51
Post #22





Grupa: Zarejestrowani
Postów: 1 178
Pomógł: 51
Dołączył: 7.01.2009
Skąd: Gdańsk

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


nl2br

Hej, a zadeklarowałeś na początku strony w head, że to utf-8? Jak cos zapisujesz do pliku, to plik najpierw przekonwertuj na utf-8 a potem cos zapisuj.


--------------------
Sklep 70%
Go to the top of the page
+Quote Post
kupilemsobieksia...
post 20.12.2009, 17:49:02
Post #23





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

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


No hej

<meta http-equiv="Content-type" content="text/html; charset=iso-8859-2">

takie coś dodaję.

Mam taki problem. Koduję wszystko w UTF-8 bez iso cośtamcoś 2. I zapisuję do pliku w notatniku ciąg znaków ąęśćńźżół z "\n" na końcu, polskie znaki ok, ale na końcu jest kwadracik, a miało być złamanie linii. Natomiast zapisując to wszystko do Excela, złamanie linii działa (niższy wiersz),a polskie znaki wyglądają tak: ąęśćńźżół

Wszędzie koduję na UTF-8 za pomocą notepad++ (w plikach .html i .php). Jak kombinowałem i przekonwertowałem plik excela na ascii to wyszło ok, ale tak to się sypie...
Go to the top of the page
+Quote Post
thomson89
post 20.12.2009, 21:00:36
Post #24





Grupa: Zarejestrowani
Postów: 1 178
Pomógł: 51
Dołączył: 7.01.2009
Skąd: Gdańsk

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


Cytat(kupilemsobieksiazke @ 20.12.2009, 17:49:02 ) *
<meta http-equiv="Content-type" content="text/html; charset=iso-8859-2">
(...)
Wszędzie koduję na UTF-8...


Z naciskiem na iso-8859-2 i UTF-8 biggrin.gif

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


--------------------
Sklep 70%
Go to the top of the page
+Quote Post
kupilemsobieksia...
post 21.12.2009, 10:56:02
Post #25





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

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


Właśnie tak miałem we wszystkich plikach php i html. Przy zapisie do notatnika (.txt) zamiast prawidłowej interpretacji "\n" kwadracik, a jak chcę tu wkleić ten kwadracik, to mi się robi nowa linia...
O właśnie tak. Tu go nie widać. Znalazłem tylko jedno rozwiązanie na prawidłowy odczyt z tego pliku (.txt) mianowicie:

while (!feof($wp))
{
$znak = fgetc($wp);
echo ($znak=="\n" ? "<br />": $znak);
}

Wtedy to interpretuje dziwny kwadracik jako łamanie linii...

Natomiast przy odczycie pliku z excela wszystko jest ok, a w samym excelu łamie linie poprawnie (robi kolejne wiersze), ale polskie znaki... Trzeba cały czas konwertować na ascii i wtedy jako tako, ale przy zapisie znowu zapisują się szlaczki.

Z kolei wczoraj robiłem banalny profil logowania, na podstawie tych wszytkich informacji i serwer (110mb.com), który obsługuje php5 i mysql, nie interpretuje "\n" oraz "\t", zamiast tego po zapisie wyświetla się "n" oraz "t".

Go to the top of the page
+Quote Post
webdice
post 21.12.2009, 11:06:05
Post #26


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Ułomny notatnik ignoruje sam znak nowej linii. Nie mniej jednak on tam jest. Jeśli chcesz aby w notatniku tekst był poprawnie wyświetlany musisz zrobić tak:

Kod
pierwsza linia\r\ndruga linia
Go to the top of the page
+Quote Post
kupilemsobieksia...
post 21.12.2009, 11:30:06
Post #27





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

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


Dzięki smile.gif Jeden problem rozwiązany. Teraz tylko... co z dziwnymi znakami w excelu i łamaniem lini na serwerze, gdzie wszystkie backslashe są zastępowane niczym.

To mój notatnik jest zły? Czy to autorzy książki nie zadbali o przenośność kodu?
Go to the top of the page
+Quote Post
thomson89
post 21.12.2009, 15:25:25
Post #28





Grupa: Zarejestrowani
Postów: 1 178
Pomógł: 51
Dołączył: 7.01.2009
Skąd: Gdańsk

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


Excel jest zupełnie inaczej kodowany. Poszukaj coś w stylu "otwieranie plików doc php".


A jak dajesz, to \n? W ciągu " czy ' (choć nie jestem pewien czy to jakaś różnica jest).


--------------------
Sklep 70%
Go to the top of the page
+Quote Post
kupilemsobieksia...
post 21.12.2009, 16:21:20
Post #29





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

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


Jest różnica. Taki znak tylko w ciągu "" podwójnych nawiasów. Do wywoływania używam zawsze echo. Okok poszukam.
Go to the top of the page
+Quote Post
kuxma
post 22.12.2009, 01:54:21
Post #30





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 22.12.2009

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


Witam. Jestem tu nowy i mam problem z polskimi znakami. Oto co zrobiłem

w pliku php na stronie umieściłem:
  1. <meta http-equiv="Content-type" content="text/html; charset=utf-8" />


na serwerze w tabeli zmieniłem kodowanie znaków na utf8_polish_ci

w pliku coon.php
  1. <?
  2. define('DB_HOST','xxxxxxxx.pll');
  3. define('DB_USER','lużytkownik'); //wpisz nazwęużytkownika bazy
  4.  
  5. danych
  6. define('DB_PASS','hasło'); //wpisz hasło dla tego użytkownika
  7. define('DB_DB','xxxxx_xxxx_pl');
  8.  
  9. $connect = mysql_connect(DB_HOST, DB_USER, DB_PASS)
  10. or die('Nie udało połączyc się z bazą danych. '.mysql_error());
  11.  
  12. mysql_query( "set names 'utf8'") ;
  13. mysql_query( "SET CHARACTER_SET utf8_unicode_ci'");
  14.  
  15. mysql_select_db(DB_DB,$connect) or die('połonczano
  16.  
  17. sie.'.mysql_error());
  18.  
  19. ?>


a to kod php w kórym chce mieć polskie znaki
  1. <?
  2.  
  3. require('coon.php');
  4.  
  5.  
  6.  
  7.  
  8. $login = mysql_real_escape_string (trim($_POST['login']));
  9.  
  10. $wpis = mysql_real_escape_string (trim($_POST['wpis']));
  11.  
  12. if($login and $wpis) {
  13.  
  14.  
  15. $zapytanie="INSERT INTO ksiega (login,wpis) VALUES('$login','$wpis')";
  16.  
  17. mysql_query($zapytanie) or die("Nie dodano rekordu" );
  18.  
  19. echo('Dodano wpis '.$login.' ');
  20. }
  21.  
  22. ?>
  23.  
  24. <h1 align="center"><font size="5" color="#FF0000">Dodaj wpis</font></h1>
  25.  
  26. <form action="ksiega.php" method="post">
  27.  
  28. <strong>Login:</strong><br><input name="login" type="text" value="" /><br>
  29.  
  30. <strong>Twój wpis:</strong><br><input name="wpis" type="text" value="" size="73" /><br>
  31.  
  32. <input type="submit" value="Dodaj" />
  33.  
  34. </form>
  35.  
  36. <br><br>
  37. <?php
  38. require('coon.php');
  39. $query="SELECT * FROM ksiega";
  40. $result=mysql_query($query);
  41.  
  42. $num=mysql_numrows($result);
  43.  
  44.  
  45. echo "<b><center>Wasze wpisy</center></b><br><br>";
  46.  
  47. $i=0;
  48. while ($i < $num) {
  49.  
  50. $login=mysql_result($result,$i,"login");
  51.  
  52. $wpis=mysql_result($result,$i,"wpis");
  53.  
  54.  
  55. echo "<b>Login: $login <br> Wpis: $wpis </b><hr><br>";
  56.  
  57. $i++;
  58. }
  59.  
  60. ?>


Pomocy już nie wiem co mam robić
Go to the top of the page
+Quote Post
webdice
post 22.12.2009, 09:32:12
Post #31


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Jak coś to:

  1. mysql_query( "set names utf8") ;
Go to the top of the page
+Quote Post
kuxma
post 22.12.2009, 10:52:37
Post #32





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 22.12.2009

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


To taż nic nie daje. W phpMyAdmin próbowałem zmienić rekord na polskie znaki ą ś ć ę . Ale po tej zmienie nadal pojawiają się znaki ? ? ? ?. A tabela i baza danych jest w systemie kodowania utf8_polish_ci. Może coś w serwerze ustawić??
Go to the top of the page
+Quote Post
webdice
post 22.12.2009, 11:07:13
Post #33


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Mówisz utf_polish_ci, a w kodzie masz:

  1. mysql_query( "SET CHARACTER_SET utf8_unicode_ci'");


Zdecyduj się na jedno. Poza tym jakie masz kodowanie pliku?
Go to the top of the page
+Quote Post
kuxma
post 22.12.2009, 11:28:44
Post #34





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 22.12.2009

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


przed chwilą zmieniłem wszystko na utf8_unicode_ci. A z tym kodowaniem pliku to trochę nie rozumiem jestem początkujący

Go to the top of the page
+Quote Post
webdice
post 22.12.2009, 11:51:20
Post #35


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Cytat(kuxma @ 22.12.2009, 11:28:44 ) *
(...). A z tym kodowaniem pliku to trochę nie rozumiem jestem początkujący


Co nie zmienia faktu że w używaniu mózgu początkujący nie jesteś. Na forum była masa tematów na ten temat, w sieci jeszcze więcej.
Go to the top of the page
+Quote Post
kuxma
post 22.12.2009, 13:12:51
Post #36





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 22.12.2009

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


Wiem co było źle Metoda porównywania napisów W TABELI była ustawiona na latin1_swedish_ci. Przepraszam za kłopot
Go to the top of the page
+Quote Post
dyziekwik
post 31.03.2010, 21:48:22
Post #37





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 7.12.2009

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


witam, nie jestem ekspertem, ale chciałbym się podzielić spostrzeżeniem. ustawiałem wszystko na utf8 tak jak mówiliście i dupa, wziąłem więc pajączka (bo w tym zwykłem pisywać) i tam ustawiłem kodowanie na utf8 i odczyt dokumentu w tym samym kodowaniu. jeśli w kodzie strony mamy krzaki to trzeba je wtedy zamienić na polskie litery i zapisać w utf8. Mi teraz chodzi.
Go to the top of the page
+Quote Post
webdice
post 31.03.2010, 22:11:49
Post #38


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Niczego nowego nie odkryłeś, mówisz o kodowaniu pliku, a o tym było już kilkanaście tematów na forum.
Go to the top of the page
+Quote Post
Daniel Meger
post 1.05.2010, 15:55:52
Post #39





Grupa: Zarejestrowani
Postów: 20
Pomógł: 2
Dołączył: 30.04.2010
Skąd: PL

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


Jeżeli używasz UTF-8, zapisujesz w UTF-8, dodajesz odpowiednie nagłówki HTML dla UTF-8, a serwer i tak to czyta 'po swojemu' - dopisz na każdej stronie php nagłówek, że plik jest zakodowany w UTF-8:
  1. <?php
  2. header('Content-type: text/html; charset=utf-8');
  3. ?>

Musisz to oczywiście dopisać przed wysłaniem nagłówków, a więc przed jakimkolwiek znakiem, tzn. przed <?php nie może być ani spacji ani entera, ani żadnego innego znaku.

Do tego jak baza jest w UTF-8, to wszystko będzie już działać poprawnie.

Wiem, że mogę się tutaj narazić na pewną krytykę i wiem, że to OT, ale moim zdaniem warto (właśnie w kontekście charsetów) z pajączków, zajączków i innych takich wynalazków przesiąść się na porządny IDE (polecam darmowy NetBeans).
Go to the top of the page
+Quote Post
darophp
post 10.08.2010, 08:25:20
Post #40





Grupa: Zarejestrowani
Postów: 309
Pomógł: 20
Dołączył: 13.02.2010
Skąd: Kęty

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


Tak, ja bym to uniemożliwił.


--------------------
Fotografia, projektowanie stron WWW | web-coding.pl - HTML 5 i CSS 3 - już w krótce ;)
Go to the top of the page
+Quote Post

4 Stron V  < 1 2 3 4 >
Reply to this topicStart new topic
3 Użytkowników czyta ten temat (3 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 16.07.2018 - 09:54