Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] dBASE, kodowanie Eastern Europe (DOS/OS2-852)
nexis
post 25.10.2006, 21:32:42
Post #1





Grupa: Zarejestrowani
Postów: 1 012
Pomógł: 109
Dołączył: 26.09.2003
Skąd: nexis.pl

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


Witajcie,

mam następujący skrypt, który zgrywa dane z pliku *.dbf do bazy danych MySQL:

  1. <?php
  2. $host = '';
  3.  
  4. $user = '';
  5.  
  6. $pass = '';
  7.  
  8. $db  = '';
  9.  
  10. mysql_pconnect($host, $user, $pass) or die ('Brak');
  11. mysql_select_db($db) or die ('Brak');
  12.  
  13. $db_path = 'cennik.dbf';
  14. $dbh  = dbase_open($db_path, 0);
  15. $count  = dbase_numrecords($dbh);
  16. $success = 0;
  17. $error  = 0;
  18. for ($i=1; $i<=$count; $i++) {
  19. $values = dbase_get_record($dbh, $i);
  20. for ($j=0; $j<=10; $j++) {
  21. $values[$j] = addslashes($values[$j]);
  22. }
  23. $values[4] = $values[4]*1.1;
  24. $query = "INSERT INTO products VALUES ('$values[0]', '$values[1]', '$values[2]', '$values[3]', '$values[4]', '$values[5]', '$values[6]', '$values[7]', '$values[8]', '$values[9]', '$values[10]')";
  25. if (mysql_query($query)) {
  26. $success++;
  27. } else {
  28. echo $query.'<br />'.mysql_error().'<br /><hr />';
  29. $error++;
  30. }
  31. }
  32.  
  33. echo 'Poprawnych zapytan: '.$success.'<br />Niepoprawnych zapytan: '.$error;
  34. ?>


Skrypt działa świetnie poza jedną rzeczą, a mianowicie kodowaniem polskich znaków. Otwierając plik spod Windows programem OpenOffice CALC poprawnie wyświetlają się polskie czcionki po wybraniu kodowania Eastern Europe (DOS/OS2-852). Co zatem muszę zmienić w swoim skrypcie, aby dane trafiały do bazy MySQL z prawidłowym kodowaniem?


--------------------
Zend Certified Engineer

Kliknij POMÓGŁ jeśli moja odpowiedź okazała się użyteczna!
Go to the top of the page
+Quote Post
emjot27
post 4.06.2007, 10:52:59
Post #2





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 4.06.2007

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


Cytat(nexis @ 25.10.2006, 22:32:42 ) *
[...] Co zatem muszę zmienić w swoim skrypcie, aby dane trafiały do bazy MySQL z prawidłowym kodowaniem?


Chciałbym odświeżyć ten temat, gdyż mam identyczny problem. Wiem, że należy użyć funkcji "iconv", tylko, ze nie wiem w jaki sposób i czy w ogóle ta funkcja ma zaimplementowany ten system kodowania znaków jakim jest DOS/OS2-852. Taki kod, nie daje żadnych wyników:

  1. <?php
  2. [...]
  3. print iconv("DOS/OS2-852","ISO-8859-2","$values[3]");
  4. [...]
  5. ?>

Taki kod nic nie wyświetla, a gdy próbuje z innymi formatami np z ISO-8859-1 są oczywiście "krzaczki". Może format DOS/OS2-852 ma inną nazwę o której mi nic nie wiadomo. Jeżeli nie, to jakie inne rozwiązanie proponujecie. Proszę o pomoc, za co z góry dziękuje.
Pozdrawiam.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 12.06.2025 - 20:54