Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][Mysql][mpdf] kodowanie polskich znakow php, mysql, mpdf
pdfpl
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 29.03.2011

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


czesc mam nastepujacy problem.
mam aplikacje w php ktora dodaje rekordy do bazy. uzytkownik wpisuje teksty w inputach i texareach. wszystkie skrypty sa w utf-8

  1. //fragment z kodowaniem pliku
  2. header("Content-Type: text/html; charset=utf8_polish_ci"); //utf8_polish_ci
  3. ini_set('default_charset', 'utf8_polish_ci');
  4.  
  5. //fragment dodajacy rekord:
  6. $inneOsiagniecie_get = $_GET['inneOsiagniecie'];
  7. echo mb_detect_encoding($inneOsiagniecie_get, 'UTF-8, ISO-8859-1, ISO-8859-2', true);
  8. mysql_query('SET NAMES utf8_polish_ci');
  9. mysql_query('SET CHARACTER_SET utf8_polish_ci');
  10. mysql_query("SET collation_connection = utf8_polish_ci");
  11. mysql_query("INSERT INTO inne_osiagniecia (id, link, osiagniecie) VALUES ('', '$zm_linkzbazy', '$inneOsiagniecie_get')");


dla testu dodalem fragment sprawdzajacy kodowanie stringu wstawianego do bazy
  1. echo mb_detect_encoding($inneOsiagniecie_get, 'UTF-8, ISO-8859-1, ISO-8859-2', true);


wynik to iso-8859-1

wie ktoś może dlaczego?

problem jest w tym ze gdy potem generuje pdf'a uzywajac klasy mpdf w miejscach gdzie maja byc polskie znaki w pdf-ie w rekordach dodanych przez aplikacje widoczne sa krzaki, co ciekawe w bazie sa polskie znaki i skrypt php wyswietlacy rekordy widza polskie znaki. Jedynie klasa mpdf ma problem z tak dodanymi rekordami.

DLACZEGO?

Ten post edytował pdfpl 29.03.2011, 11:09:33
Go to the top of the page
+Quote Post
gargamel
post
Post #2





Grupa: Zarejestrowani
Postów: 278
Pomógł: 35
Dołączył: 25.06.2010

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


W FPDFie jest podobny problem, który można rozwiązać zmieniając kodowanie poprzez np: iconv("utf-8", "windows-1250", $string)
Może u Ciebie będzie podobnie
Go to the top of the page
+Quote Post
pdfpl
post
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 29.03.2011

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


niestety obawaim sie ze to nie takie proste. tego tez wczesnierj probowalem ale nie dalo rozwiazania. zarowno iconv na strungu wstawainego do bazy jak i iconv na stringu wysweitlanego w pdf-ie nie pomagaja. Ma ktos moze jakichs inny pomysł jak wstawiac stringi w kodowaniu utf-8?

rozwiazaniem okazalo sie
- usuniecie wszelkich kodowan z pliku (zapytania do bazy danych),
- ustawienie $mpdf=new mPDF('utf-8','A4','','');,
- ustawienie formatu kodowania pliku na utf-8 w notepad++;
- ustawienie pliku polaczenia w nastepujacy sposob:
header("Content-Type: text/html; charset=utf-8");
ini_set('default_charset', 'utf-8');
//polaczenie MySQL
$serwer="...";
$login="...";
$haslo="...";
$baza="...";
mysql_connect($serwer, $login, $haslo) or die(mysql_error());
//test
if (!mysql_connect($serwer, $login, $haslo))
die("Can't connect to database");
if (!mysql_select_db($baza))
die("Can't select database");
//polskie znaki z bazy
mysql_query('SET NAMES utf8');

rozwiazaniem okazalo sie
- usuniecie wszelkich kodowan z pliku (zapytania do bazy danych),
- ustawienie $mpdf=new mPDF('utf-8','A4','','');,
- ustawienie formatu kodowania pliku na utf-8 w notepad++;
- ustawienie pliku polaczenia w nastepujacy sposob:
header("Content-Type: text/html; charset=utf-8");
ini_set('default_charset', 'utf-8');
//polaczenie MySQL
$serwer="...";
$login="...";
$haslo="...";
$baza="...";
mysql_connect($serwer, $login, $haslo) or die(mysql_error());
//test
if (!mysql_connect($serwer, $login, $haslo))
die("Can't connect to database");
if (!mysql_select_db($baza))
die("Can't select database");
//polskie znaki z bazy
mysql_query('SET NAMES utf8');
Go to the top of the page
+Quote Post
morthan
post
Post #4





Grupa: Zarejestrowani
Postów: 50
Pomógł: 4
Dołączył: 15.06.2010

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


Rozwiązanie prawidłowe. Mi też pomogło.
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: 23.12.2025 - 18:40