php με ελληνικούς χαρακτήρες

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

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

Απάντηση
Tania Vidaki
Δημοσιεύσεις: 23
Εγγραφή: 21 Μαρ 2009 19:46

php με ελληνικούς χαρακτήρες

Δημοσίευση από Tania Vidaki » 02 Σεπ 2009 12:44

Γεια σας!
Έχω δημιουργήσει μία σελίδα και όταν κάνω preview όσα είναι γραμμένα στα Ελληνικά δεν εμφανίζονται. Πως μπορώ να εμφανίσω τους Ελληνικούς χαρακτήρες στο site μου;
Ευχαριστώ εκ των προτέρων!

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

php με ελληνικούς χαρακτήρες

Δημοσίευση από Basilakis » 02 Σεπ 2009 12:53

Καλησπέρα,

καλείς τα δεδομένα απο τη βάση δεδομένων, για αυτό και έχεις βάλει το θέμα στο php ή απλώς τα γράφεις με το χεράκι σου;

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

στην κεντρική της σελίδας, ελεγξε πως υπάρχει...

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

php με ελληνικούς χαρακτήρες

Δημοσίευση από Apostolis_38 » 02 Σεπ 2009 13:03

Στο charset στο

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

<meta http-equiv="Content-Type" content="... charset=...">
τι σου γράφει;
Θα πρέπει να έχει utf-8 ή iso-8859-7 ή έστω windows-1253 για να δείχνει σωστά τα Ελληνικά.
Αν χρησιμοποιείς και σύνδεση με άση δεδομένων θα πρέπει και η βάση να έχει την ίδια κωδικοσελίδα.

Εχε υπόψην οτι αν χρησιμοποιείς κάποιο πρόγραμμα (π.χ. Dreamweaver) και τα γράφεις εσύ τα στοιχεία της σελίδας ίσως να μην γίνει σωστά η μετατροπή των χαρακτήρων και να χρειαστεί να τα ξαναγράψεις. Κράτα ένα αντίγραφο καλού κακού.

edit Ωπ! πιο γρήγορος ο Basilakis

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

php με ελληνικούς χαρακτήρες

Δημοσίευση από Basilakis » 02 Σεπ 2009 13:09

Apostolis_38 έγραψε: edit Ωπ! πιο γρήγορος ο Basilakis
Μόνο στα Forums. 8) 8) 8) 8) :lol: :lol: :lol: 8) 8) 8)

Άβαταρ μέλους
ThyClub
Honorary Member
Δημοσιεύσεις: 5312
Εγγραφή: 17 Νοέμ 2003 00:21
Τοποθεσία: Hell's Kitchen
Επικοινωνία:

php με ελληνικούς χαρακτήρες

Δημοσίευση από ThyClub » 02 Σεπ 2009 13:09

Άνοιξε το αρχείο με το notepad++ και αποθήκευσε το με utf8 χωρίς BOM. Μαζί βέβαια με το charset που λένε παραπάνω

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

php με ελληνικούς χαρακτήρες

Δημοσίευση από Apostolis_38 » 02 Σεπ 2009 13:25

Basilakis έγραψε:
Apostolis_38 έγραψε: edit Ωπ! πιο γρήγορος ο Basilakis
Μόνο στα Forums. 8) 8) 8) 8) :lol: :lol: :lol: 8) 8) 8)
8)

Βλέπω πάντως πως όταν ποστάρει γυναίκα τσακιζόμαστε όλοι να απαντήσουμε :D :D

Tania Vidaki
Δημοσιεύσεις: 23
Εγγραφή: 21 Μαρ 2009 19:46

php με ελληνικούς χαρακτήρες

Δημοσίευση από Tania Vidaki » 02 Σεπ 2009 13:57

Αυτή την κωδικοποίηση έχω βάλει...
Προς το παρόν το site είναι στατικό αλλά στη συνέχεια θα πέρνω δοδομένα από Βάση.
Επίσης δεν το κάνω στο dreamweaver, είναι html με το χέρι.
Αν υπάρχει κάποια άλλη βοήθεια... :-? [/flash]

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

php με ελληνικούς χαρακτήρες

Δημοσίευση από Apostolis_38 » 02 Σεπ 2009 14:06

Αν σου δείχνει σωστά τα Ελληνικά στο πρόγραμμα που γράφεις τα δεδομένα αλλά κινέζικα στον browser τσέκαρε την κωδικοσελίδα του browser.
Προβολή --> Κωδικοποίηση

Άβαταρ μέλους
mrpc
WebDev Moderator
Δημοσιεύσεις: 3393
Εγγραφή: 03 Μάιος 2000 03:00
Τοποθεσία: Εξάρχεια
Επικοινωνία:

php με ελληνικούς χαρακτήρες

Δημοσίευση από mrpc » 02 Σεπ 2009 16:31

Καμιά φορά ο apache είναι ρυθμισμένος να στέλνει κάποιο default charset σαν header. Σε αυτή την περίπτωση μια γρήγορη λύση είναι στην αρχή του αρχείου σου να βάλεις αυτό:

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

<?
header&#40;'Content-Type&#58;text/html; charset=ISO-8859-7'&#41;;
?>
(ή ότι άλλο charset επιλέξεις ;) )

panosru
WebDev Moderator
Δημοσιεύσεις: 1885
Εγγραφή: 13 Σεπ 2005 16:13
Τοποθεσία: Camp

php με ελληνικούς χαρακτήρες

Δημοσίευση από panosru » 16 Σεπ 2009 01:52

Γενικότερα να σημειωθεί πως η PHP δεν είναι φτιαγμένη να υποστηρίζει μη λατινικούς χαρακτήρες, ως αποτέλεσμα να κάνουμε χρήση τον headers, iconv, mb κτλ. Το θέμα αυτό ευτυχώς θα λυθεί στην PHP 6 μιας και θα παρέχει 100% υποστήριξη για UTF-8 οπότε θα μπορούμε να γράφουμε σε οποιαδήποτε γλώσσα άφοβα (αυτό κυρίως με σώζει στο generate τον PDF's).

Για το θέμα του output σε browser είναι αρκετά ξεπερασμένο πρόβλημα και σπάνια να το συναντήσει κάποιος.

Βεβαιώσου πως το πρόβλημα είναι από την PHP, συνήθως προβλήματα θα βρεις τραβώντας δεδομένα από την βάση, αλλά και αυτά τα προβλήματα έχουν ξεπεραστεί.

Εγώ θα σου πρότεινα να κάνεις ένα plain html αρχείο και να δεις αν σου παίζει. Μπορείς να δοκιμάσεις τον παρακάτω κώδικα:

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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http&#58;//www.w3.org/TR/html4/strict.dtd">
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
		<title>Ελληνικός τίτλος</title>
	</head>
	<body>
		<p>Ελληνική παράγραφος.</p>
	</body>
</html>
Είναι η βασική δομή μιας HTML 4.01 Strict Document Type σελίδας. Σώσε το αρχείο και τρέξε το με διπλό κλικ, όχι μέσω κάποιο web server.

Αν δεν βλέπεις Ελληνικά στον παραπάνω κώδικα τότε προφανώς ο browser που χρησιμοποιείς δεν είναι σωστά ρυθμισμένος.

Αν βλέπεις Ελληνικά τότε δοκίμασε να τρέξεις το αρχείο μέσω του web server σου, αν δεν βλέπεις Ελληνικά τότε ο web server σου δεν είναι σωστά ρυθμισμένος. Δοκίμασε το Zend Server CE που είναι και δωρεάν και ο ποιο αξιόπιστος web server για μένα.

Αν βλέπεις Ελληνικά μετονόμασε το αρχείο από .html σε .php και δοκίμασε τον παρακάτω κώδικα:

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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http&#58;//www.w3.org/TR/html4/strict.dtd">
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
		<title><?php echo 'Ελληνικός τίτλος'; ?></title>
	</head>
	<body>
		<p><?php echo 'Ελληνική παράγραφος.'; ?></p>
	</body>
</html>
Αν δεν βλέπεις Ελληνικά τότε είναι θέμα ρύθμισης της PHP, μία λύση είναι στο PHP.INI αρχείο σου να ψάξεις για την παράμετρο default_charset και να της δώσεις την τιμή UTF-8 ή ISO-8859-7 εγώ προτιμώ την UTF-8 για λόγους πολυγλωσσικού περιεχομένου. Οπότε θα έχεις κάτι σαν αυτό: default_charset = "UTF-8". Σιγουρέψου ότι το ; μπροστά από την παράμετρο δεν υπάρχει. Δεν πρέπει να έχεις αυτό: ;default_charset = "UTF-8".

Εάν βλέπεις Ελληνικά τότε προφανώς είναι πρόβλημα στον κώδικά σου. Δες μήπως κάπου ορίζεις κάποιο header όπου κάνει "force" κάποιο character set δηλαδή ωθεί κάποιο character set για την σελίδα.


Χρήσιμα links:
Zend Server Community Edition
Character Sets / Character Encoding Issues

Tania Vidaki
Δημοσιεύσεις: 23
Εγγραφή: 21 Μαρ 2009 19:46

php με ελληνικούς χαρακτήρες

Δημοσίευση από Tania Vidaki » 16 Σεπ 2009 11:41

Λύθηκε το πρόβλημα. Δεν ήταν σωστα ρυθμισμένο το πρόγραμμα που γράφω.
Έγραφα .html στην αρχή και όταν τα έκανα rename σε .php ήθελε μία ρυθμιση.
Thanks!

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

php με ελληνικούς χαρακτήρες

Δημοσίευση από Basilakis » 16 Σεπ 2009 14:05

Να ρωτήσω εγώ:

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

$message = $_POST&#91;'message'&#93;;

// Fixes the encoding to uf8
function fixEncoding&#40;$message&#41;
&#123;
  $cur_encoding = mb_detect_encoding&#40;$message&#41; ;
  if&#40;$cur_encoding == "UTF-8" && mb_check_encoding&#40;$message,"UTF-8"&#41;&#41;
    return $message;
  else
    return utf8_encode&#40;$message&#41;;
&#125; // fixEncoding 
να το κάνω εγώ αυτό, για να μετατρέψω τα value απο το $message = $_POST['message']; θα γίνει το encode σε utf-8 ανεξαρτήτως τι ήταν στην αποστολή, έτσι δεν είναι;

tonyM
Δημοσιεύσεις: 28
Εγγραφή: 18 Οκτ 2009 00:41

php με ελληνικούς χαρακτήρες

Δημοσίευση από tonyM » 18 Οκτ 2009 01:18

Παιδιά έχω κι εγώ ένα πρόβλημα-μυστήριο για λύση :)

Γράφω σε Dreamweaver και στην php βάζω charset=utf-8 και στη βάση utf8_general_ci, όταν κάνω μια εγγραφή απο την σελίδα και μετά την καλέσω πάλι με php όλα είναι ok τα ελληνικά τα δείχνει μια χαρά.

Το πρόβλημα είναι όταν μπαίνω απο το phpMyAdmin και πηγαίνω στην εγγραφή που μόλις έκανα, εκεί μου βγάζει αυτά τα ιερογλυφικά &#206;&#376; &#206;&#186;&#206;±&#206;&#184;&#206;·&#206;³&#206;·&#207;&#8222;&#206;&#174;&#207;&#8218; &#206;&#186;. &#206;"&#206;·&#206;&#188;&#206;&#174;&#207;&#8222;&#207;&#206;&#185;, θα μου πείς αφού στις σελίδες είναι όλα κάλα τι κάθεσε και το ψάχνεις.

ok, το site θα δουλέψει αλλά τι γίνετε όταν χρειαστεί να πάρουμε backup ή να κάνουμε export ?

Ξέρει κανένας τι μπορεί να φταίει?
Μπορεί να κάνω κανένα λάθος όταν φτιάχνω τη βάση?

Ευχαριστώ

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

php με ελληνικούς χαρακτήρες

Δημοσίευση από Apostolis_38 » 18 Οκτ 2009 01:31

Μήπως στο phpMyAdmin δεν έχεις επιλεγμένη την utf-8 κωδικοποίηση;

Πάντως καλό θα ήταν να χρησιμοποιείς καί την εντολή SET NAMES utf-8 όταν καταχωρείς ή τραβάς εγγραφές από τη βάση.
Σημείωση: Αν το κάνεις έχε υπόψη ότι στις ήδη καταχωρημένες εγγραφές δεν θα "δουλεύει" η SET NAMES.

Σχετικά με το backup έχω την αίσθηση οτι τα backup-import/export που κάνει το phpMyAdmin γίνονται βάση του char set της βάσης οπότε λογικά δεν θα έχεις πρόβλημα.
Πάντως μπορείς να φτιάξεις έναν πίνακα τεστ και με ένα export/import να το τσεκάρεις.

tonyM
Δημοσιεύσεις: 28
Εγγραφή: 18 Οκτ 2009 00:41

php με ελληνικούς χαρακτήρες

Δημοσίευση από tonyM » 19 Οκτ 2009 06:06

Ανεβάζω ένα screenshot για να δείτε πως είναι το phpmyadmin, νομίζω ότι είναι σωστό.
Δοκίμασα και import/export, τα ίδια κορακίστικα μου βγάζει.
Η SET NAMES δεν ξέρω πως συντάσετε, αν μπορείς να μου δώσεις κάποια βοήθεια θα σου είμαι υπόχρεος, κανένα link ή ακόμα καλύτερα κομμάτι κώδικα αν μπορεί κάποιος.
Συνημμένα
phpmyadmin.jpg

Απάντηση

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

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

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