Πως βλέπει nvarchar, ntext Ελληνικά από SQL Server η PHP;

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
Άβαταρ μέλους
dimsis
Reporter
Δημοσιεύσεις: 7994
Εγγραφή: 25 Ιούλ 2001 03:00

Πως βλέπει nvarchar, ntext Ελληνικά από SQL Server η PHP;

Δημοσίευση από dimsis » 15 Ιούλ 2008 17:47

Ξέρεις κανείς πως μπορεί να δει σωστά Ελληνικά η PHP από unicode πεδία (ntext, nvarchar) βάσης SQL Server 2000;
Βγάζει ερωτηματικά και δεν φαίνεται να είναι πρόβλημα του encoding της σελίδας αλλά το πως τραβάει τα data από τη βάση.

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6230
Εγγραφή: 30 Νοέμ 2004 03:09

Πως βλέπει nvarchar, ntext Ελληνικά από SQL Server η PHP;

Δημοσίευση από fafos » 15 Ιούλ 2008 17:59

dimsis έγραψε:Ξέρεις κανείς πως μπορεί να δει σωστά Ελληνικά η PHP από unicode πεδία (ntext, nvarchar) βάσης SQL Server 2000;
Βγάζει ερωτηματικά και δεν φαίνεται να είναι πρόβλημα του encoding της σελίδας αλλά το πως τραβάει τα data από τη βάση.
mhpos pairnei ta apotelesmata me kapoio ajax script?

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

Πως βλέπει nvarchar, ntext Ελληνικά από SQL Server η PHP;

Δημοσίευση από cherouvim » 15 Ιούλ 2008 18:48

Το connection string σου πιο είναι;

Στη java συμπεριλαμβάνει το encoding και είναι κάπως έτσι:

Κώδικας: Επιλογή όλων

jdbc:jtds:sqlserver://localhost:1433;DatabaseName=foobar;charset=utf8

Άβαταρ μέλους
dimsis
Reporter
Δημοσιεύσεις: 7994
Εγγραφή: 25 Ιούλ 2001 03:00

Πως βλέπει nvarchar, ntext Ελληνικά από SQL Server η PHP;

Δημοσίευση από dimsis » 15 Ιούλ 2008 20:42

Όχι δεν παίρνει αποτελέσματα από Ajax και το connection γίνετε με SQLExpress 1433 ... δεν είδα να είχε δηλωμένο κανένα encoding εκεί. Λες να έχει τίποτε τέτοιο σαν τη java; Θα το ψάξω...

Άβαταρ μέλους
alexandr0s
Δημοσιεύσεις: 1064
Εγγραφή: 25 Απρ 2006 17:16
Τοποθεσία: localhost
Επικοινωνία:

Πως βλέπει nvarchar, ntext Ελληνικά από SQL Server η PHP;

Δημοσίευση από alexandr0s » 15 Ιούλ 2008 21:58

To encoding των δεδομένων σε sql server νομίζω είναι iso-8859-7 (δεν ξέρω πώς εμφανίζεις τα αποτελέσματα)

Άβαταρ μέλους
dimsis
Reporter
Δημοσιεύσεις: 7994
Εγγραφή: 25 Ιούλ 2001 03:00

Πως βλέπει nvarchar, ntext Ελληνικά από SQL Server η PHP;

Δημοσίευση από dimsis » 16 Ιούλ 2008 10:28

Ο SQL Server υποστηρίζει εξ ορισμού unicode, το encoding των βάσεων συνήθως είναι: SQL_Latin1_General_CP1_CI_AS, και έπειτα απλώς δηλώνεις ως τύπο πεδίων αντί για text, ntext, αντί για varchar, nvarchar και αντί για char, nchar οπότε και έχει υποστήριξει unicode.

Χρησιμοποιόντας unicode (nvarchar κλπ) μπορείς να αποθηκεύσεις άμεσα χαρακτήρες (σχεδόν) από οποιαδήποτε γλώσσα, ενώ με σκέτα varchar μόνο στη γλώσσα του encoding που έχεις δηλώσει.

Για n-type κείμενο ο SQL Server χρησιμοποιεί 2 bytes ανά χαρακτήρα, ενώ οι not-n-type latin-based 1 byte.

Ένα link που βρήκα στο MSDN στα γρήγορα:
http://msdn.microsoft.com/en-us/library ... L.80).aspx

Αλλά το πρόβλημα είναι πως η PHP (όπως και η MySQL) δεν υποστηρίζουν τέτοιους τύπους.

To connection συγκεκριμένα γίνετε ως εξής:
$myServer ='sqlservername\SQLEXPRESS,1433';
$myUser = 'ταδε';
$myPass = 'οτιδηποτε';
$myDB = "ηβασημου";
// connection to the database
$dbhandle = mssql_connect($myServer, $myUser, $myPass)
or die("Couldn't connect to SQL Server on $myServer");

// select a database to work with
$selected = mssql_select_db($myDB, $dbhandle)
or die("Couldn't open database $myDB");

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6230
Εγγραφή: 30 Νοέμ 2004 03:09

Πως βλέπει nvarchar, ntext Ελληνικά από SQL Server η PHP;

Δημοσίευση από fafos » 16 Ιούλ 2008 14:34

Dokimase na valeis enan header mesa sto php arxeio:

Κώδικας: Επιλογή όλων

header('content-type: text/html; charset=iso-8859-7');

Άβαταρ μέλους
Basilakis
PHP Moderator
Δημοσιεύσεις: 8574
Εγγραφή: 17 Νοέμ 2003 13:03
Τοποθεσία: Womans' Brain
Επικοινωνία:

Πως βλέπει nvarchar, ntext Ελληνικά από SQL Server η PHP;

Δημοσίευση από Basilakis » 16 Ιούλ 2008 15:46

Κώδικας: Επιλογή όλων

mysql_query('set character set greek',$link);
mysql_query("SET NAMES 'greek'",$link);
Κάτι τέτοιο δεν μπορεί να παίξει με το encoding που θέλεις;

Άβαταρ μέλους
soteres2002
S. & H. Moderator
Δημοσιεύσεις: 1524
Εγγραφή: 05 Μαρ 2004 22:17
Τοποθεσία: Ιωάννινα

Πως βλέπει nvarchar, ntext Ελληνικά από SQL Server η PHP;

Δημοσίευση από soteres2002 » 16 Ιούλ 2008 15:51

Η ΡΗΡ έχει υποστήριξη για μετατροπή από και προς Unicode. Δες τα extensions unicode ( http://gr.php.net/manual/en/function.unicode-decode.php ), καθώς και το iconv. Με τον ερχομό της ΡΗΡ 6 θα υπάρχει πλήρης Unicode υποστήριξη, και αυτές οι μετατροπές θα αναγνωρίζονται αυτόματα και θα γίνονται εσωτερικά χωρίς να είναι αναγκαία η μετατροπή από τον προγραμματιστή με κληση συναρτήσεων.

Άβαταρ μέλους
dimsis
Reporter
Δημοσιεύσεις: 7994
Εγγραφή: 25 Ιούλ 2001 03:00

Πως βλέπει nvarchar, ntext Ελληνικά από SQL Server η PHP;

Δημοσίευση από dimsis » 16 Ιούλ 2008 17:08

Πίκρα... Δεν παίζει τίποτε από τις προτάσεις...
έγιναν δοκιμές αλλά τζίφος. Και πάλι ερωτηματικά γυρίζει... την ψάχνω ακόμα, αν έχει κανείς άλλος καμιά ιδέα, pls shoot!

Άβαταρ μέλους
soteres2002
S. & H. Moderator
Δημοσιεύσεις: 1524
Εγγραφή: 05 Μαρ 2004 22:17
Τοποθεσία: Ιωάννινα

Πως βλέπει nvarchar, ntext Ελληνικά από SQL Server η PHP;

Δημοσίευση από soteres2002 » 16 Ιούλ 2008 17:34

dimsis, τα έχεις όλα αυτά τα extensions φορτωμένα στην ΡΗΡ; Αν δεν δουλέβει με αυτά σημαίνει πως δεν είναι ακριβώς εκεί το πρόβλημα.

Επίσης, μπορείς να δοκιμάσεις και mb_convert_* από multibyte strings. Ξέχασα να σου πω πριν...

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6230
Εγγραφή: 30 Νοέμ 2004 03:09

Πως βλέπει nvarchar, ntext Ελληνικά από SQL Server η PHP;

Δημοσίευση από fafos » 16 Ιούλ 2008 17:35

o server einai se Windows?

Άβαταρ μέλους
soteres2002
S. & H. Moderator
Δημοσιεύσεις: 1524
Εγγραφή: 05 Μαρ 2004 22:17
Τοποθεσία: Ιωάννινα

Πως βλέπει nvarchar, ntext Ελληνικά από SQL Server η PHP;

Δημοσίευση από soteres2002 » 16 Ιούλ 2008 17:57

Παιδιά όπου και να είναι υπάρχουν έτοιμα binaries τόσο για Windows όσο και Linux. Βέβαια, στο Linux είναι καλύτερο να το κάνεις compile από κώδικα, είναι πολύ απλό και η δουλειά γίνεται με μια απλή προσθήκη στο php.ini . Μόνο που στην δεύτερη περίπτωση χρειάζεται μερικές φορές και τα development files για την βιβλιοθήκη που κάνει wrap το extension, και αυτό πολύ απλό ειδικά με tools σαν το apt ή Synaptic.

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6230
Εγγραφή: 30 Νοέμ 2004 03:09

Πως βλέπει nvarchar, ntext Ελληνικά από SQL Server η PHP;

Δημοσίευση από fafos » 16 Ιούλ 2008 18:01

soteres2002 έγραψε:Παιδιά όπου και να είναι υπάρχουν έτοιμα binaries τόσο για Windows όσο και Linux. Βέβαια, στο Linux είναι καλύτερο να το κάνεις compile από κώδικα, είναι πολύ απλό και η δουλειά γίνεται με μια απλή προσθήκη στο php.ini .
Eixa kai ego ena analogo provlhma prin 1-2 xronia se windows server kai o texnikos anavathmise thn MDAC se version 2.8 SP1 kai doulepse (ypopsin eimai panasxetos me servers :D )

Άβαταρ μέλους
dimsis
Reporter
Δημοσιεύσεις: 7994
Εγγραφή: 25 Ιούλ 2001 03:00

Πως βλέπει nvarchar, ntext Ελληνικά από SQL Server η PHP;

Δημοσίευση από dimsis » 16 Ιούλ 2008 22:57

soteres2002 > Ποιά extensions; λογικά είναι τα πάντα φορτωμένα, από τη στιγμή που γυρίζει data στα queries, αλλά απλώς δεν γυρίζει Ελληνικά αλλά ερωτηματικά.

fafos > Ναι windows server. Θα το δοκιμάσω και αυτό αύριο γιατί χλωμό να είναι SP1 τα MDAC... αλλά όντως χρησιμοποιεί MDAC;;; θα το δοκιμάσω πάντως...

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες