Έκανα μια δοκιμή σε Ubuntu server να συνδεθώ σε sql server 2005 μέσω pdo και όχι με τις mssql_* functions. Αν και η σύνδεση έπαιξε αμέσως μια χαρά και έβλεπα ελληνικά (utf8) από την php χρησιμοποιώντας τις mssql functions, από το pdo είχα ένα περίεργο πρόβλημα:
Τρέχοντας τον κώδικα από το shell έβλεπα στο output κανονικά τα ελληνικά, αλλά τρέχοντας τον κώδικα από τον apache η ιστοσελίδα μου έφερνε μόνο ερωτηματικά ????????????
Μετά από ψάξιμο μιας μέρας και αρκετές δοκιμές η λύση τελικά ήταν στο connection string. Για να βλέπεις τα ελληνικά αρκεί να προσθέσεις το ;charset=utf8"
<?php try { $hostname = 'Ο sql server'; $dbname = 'Η βάση δεδομένων'; $username = '...'; $pw = '...'; $dbh = new PDO ( "dblib:host=$hostname;dbname=$dbname;charset=utf8", "$username", "$pw"); } catch (PDOException $e) { echo "Failed to get DB handle: " . $e->getMessage() . "n"; exit; } $stmt = $dbh->prepare('SELECT * FROM users'); $stmt->execute(); while ($row = $stmt->fetchobject()) { print_r($row); } unset($dbh); unset($stmt); ?>