mysql & ellhnika

DJ Art djart at linux.gr
Mon Oct 10 11:57:56 EEST 2005


On Monday 10 October 2005 10:47, Harris Kosmidhs wrote:
> Meta thn anaba8mish ta ellhnika ta epai3an. Ekana tis e3hs kinhseis:
> to table to ekana collation greek_general_ci. Epishs ka8e pedio tou
> pinaka to ekana sto idio charset me to idio collation.
> 3anaperasa ton pinaka (o opoios ftiaxnetai apo ena php script me bash
> ena text -iso8859-7- arxeio pou tou dino) alla pali tipote.
>
> Ta ellhnika ta blepo me ??? kai sto phpmyadmin kai meso ths selidas
> pou exo ftia3ei.

Το πιθανότερο είναι πως δεν έχει οριστεί παντού το collation, γιατί στην 
4.1, υπάρχει σε 4 σημεία !!:

$ mysql -u root -p
   .....
mysql> status
   ....
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    utf8
Conn.  characterset:    utf8
   ....
mysql>

Πρέπει και τα 4 να τα ορίσεις σε greek.

Δες αυτό αν σε βοηθάει:
http://dev.mysql.com/doc/mysql/en/charset-connection.html

Είχα παρόμοιο πρόβλημα με αυτό που περιέγραψες, παρόλο που έχω ορίσει να 
χρησιμοποιώ utf8, δηλαδή ενώ τελικά τα "strings" ήταν σωστά 
αποθηκευμένα στη βάση, επειδή κάποιο από τα παραπάνω δεν ήταν ορισμένο, 
το phpmyadmin (και η php εφαρμογή που έκανα develop) επέστρεφαν 
ερωτηματικά.

Τελικά, έκανα τις εξής ρυθμίσεις:

Στο /etc/my.cnf έβαλα:

[mysqld]
default-character-set=utf8

Στο ~/.my.cnf έβαλα:

[mysql]
default-character-set=utf8

Με αυτά, το phpmyadmin δούλεψε. Για να κάνω και τη δική μου php εφαρμογή 
να δουλέψει, μετά το επιτυχές άνοιγμα της βάσης, έκανα το εξής query:

function init_DB() {
		global $dsn;
		$this->db =& DB::connect($dsn);
		if (DB::isError($this->db)) {die($this->db->getMessage());}
		
		$query = sprintf("SET NAMES %s", $this->db->quoteSmart("utf8"));
		$res =& $this->db->query($query);
		/* Do not die on error for being compatible with MySQL 4.0.x */
		/* if (DB::isError($res)) {die($res->getMessage());} */
	}

το παραπάνω είναι με PEAR::DB, αυτό που σε ενδιαφέρει είναι το:
SET NAMES utf8

Αυτά, ελπίζω να λύσεις τώρα το πρόβλημά σου.

-- 
Kyritsis Athanasios <djart at linux.gr>
Q: Εθελοντής ή θεατής ?
A: Ιδιοκτήτης! ;-)




More information about the Linux-greek-users mailing list