Προς το περιεχόμενο

PHP και ελληνικά


InDiO

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλημέρα σε όλους. Θέλω να στήσω ένα πακέτο τύπου phpnuke σε ένα access point του patraswireless.net, για να καταγράφουμε νέα κτλ. Το πακέτο είναι το geeklog για όσους ίσως το γνωρίζουν.

 

Το πρόβλημα είναι με την υποστήριξη ελληνικών. Ενώ χρησιμοποιώ το language file hellenic, με τα σωστά locale και charset, παίρνω αλαμπουρνέζικα στον browser(firefox+msie). Το θέμα μου φαίνεται πως έχει σχέση με το λίνουξ που τρέχει η PHP μου... Αν τρέξω το εξής script, παίρνω μια ωραία αλαμπουρνέζικη ημέρα!

>
<?php

echo "<p>Today is " . strftime ("%A");

$result = setlocale (LC_ALL, 'el_GR');

if ($result === false) {
   echo "<p>An error occured when switching the locale.";
} else {
   echo "<p>Switched to locale " . $result;
   echo "<p>Today is ασδ" . strftime ("%A");
}

?>

Γιατί συμβαίνει αυτό!? Καμιά συμβουλή για τα ελληνικά και την PHP;

Δημοσ.
Καλημέρα σε όλους. Θέλω να στήσω ένα πακέτο τύπου phpnuke σε ένα access point του patraswireless.net' date=' για να καταγράφουμε νέα κτλ. Το πακέτο είναι το geeklog για όσους ίσως το γνωρίζουν.

 

Το πρόβλημα είναι με την υποστήριξη ελληνικών. Ενώ χρησιμοποιώ το language file hellenic, με τα σωστά locale και charset, παίρνω αλαμπουρνέζικα στον browser(firefox+msie). Το θέμα μου φαίνεται πως έχει σχέση με το λίνουξ που τρέχει η PHP μου... Αν τρέξω το εξής script, παίρνω μια ωραία αλαμπουρνέζικη ημέρα!

>
<?php

echo "<p>Today is " . strftime ("%A");

$result = setlocale (LC_ALL, 'el_GR');

if ($result === false) {
   echo "<p>An error occured when switching the locale.";
} else {
   echo "<p>Switched to locale " . $result;
   echo "<p>Today is ασδ" . strftime ("%A");
}

?>

Γιατί συμβαίνει αυτό!? Καμιά συμβουλή για τα ελληνικά και την PHP;[/quote']

 

Αν στον mozilla, ie κανεις view->charecter encoding-> που ειναι default επιλεγμένο? Αν ειναι καποια άλλο εκτός του greek, και το βάλεις εσύ UTF-8 η ISO-8859-7 η Greek (windows 1253) , τα δείχνει σωστά?

Δεν αρκεί να στα δίνει unicode o server πρεπει να το ξέρει και ο

browser. Στο zoops παντως (και αυτο php-nuke alike ειναι ) επρεπε στα globals να πεις οτι το charset θα ειναι greek. Και μετα το εβαζε στο head ολων των σελιδων.

Δημοσ.

Αν αλλάξω με το χέρι το charset του firefox, το δείχνει όντως κανονικά. Προφανώς αυτό δεν είναι λύση. Ενώ βγάζει στο head της HTML το ISO-8859-7, ο firefox έχει προεπιλογή western.

  • 1 μήνα μετά...
Δημοσ.

Καλημέρα. Εχω φτιάξει μια φόρμα συμπλήρωσης στοιχείων σε FlashMx και κατά την υποβολή, αφού γίνει η αντίστοιχη επικύρωση, αποστέλλει τα στοιχεία σε ένα script PHP, το οποίο μετά στέλνει αυτά τα στοιχεία σε email. Το πρόβλημα είναι ότι τα ελληνικά τα βγάζει κινέζικα......! Πώς θα το κάνω να τα βλέπει κανονικά.

Δημοσ.
Και τα emails έχουν headers...

 

Σε μένα πάει αυτό που λες? Αν ναι, θα μπορούσες να είσαι πιο λεπτομερής? Δεν έχω ιδέα από PHP, άλλα πράγματα σπουδάζω, μαθαίνω μόνος μου προγραμματισμό. Θα μου λύνατε τα χέρια αν κάποιος μου έλυνε το πρόβλημα.

Ευχαριστώ

Δημοσ.

Αυτό που σου είπα είναι ότι για αυτό που θες, πρέπει να πεις στον client ότι αυτό που το στέλνεις είναι Ελληνικά. Πρέπει να του βάλει λοιπόν extra header.

Να πώς το έκανα εγώ:

 

>
mail($to,$subject,$text,"From: $name <[email protected]>\r\n"."Content-Type: text/plain; charset=ISO-8859-7; format=flowed\r\n Content-Transfer-Encoding: 8bit\r\n"."X-Accept-Language: en-us, en, gr\r\n". "MIME-Version: 1.0");

 

charset=ISO-8859-7;

X-Accept-Language: en-us, en, gr

  • 3 εβδομάδες αργότερα...
Δημοσ.

Φίλε δοκίμασα αυτό που λες με διάφορους συνδυσμούς, αλλά τίποτα. Σου έχω ένα δείγμα από τον κώδικα παρακάτω, αν μπορείς help. με το "output" στέλνω στο flash αν έχει ή όχι αποσταλούν τα στοιχεία οπότε και υπάρχει και η ανάλογη αλληλεπίδραση με τον χρήστη.

>
<?
if(!empty($HTTP_POST_VARS['sender_name']) || !empty($HTTP_POST_VARS['sender_surname']))
{
$to = "[email protected]";
$subject = stripslashes($HTTP_POST_VARS['sender_surname']);
$body = stripslashes($HTTP_POST_VARS['sender_name']);
$header = "From: " . $HTTP_POST_VARS['sender_surname'];
$header .= "X-Priority: 1";
$header .= "Content-Type: text/plain; charset=ISO-8859-7; format=flowed\r\n Content-Transfer-Encoding: 8bit\r\n"."X-Accept-Language: en-us, en, gr\r\n"."MIME-Version: 1.0";
if(@mail($to, $subject, $body, $header))
{
	echo "output=sent";
} else {
	echo "output=error";
}
} else {
echo "output=error";
}
?>

  • 2 μήνες μετά...

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...