Πρόβλημα με ελληνικούς χαρακτήρες

Κώδικας, πληροφορίες, ερωτήσεις και απαντήσεις σχετικές με την JavaScript.

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

Απάντηση
Panos_Smr
Δημοσιεύσεις: 6
Εγγραφή: 05 Αύγ 2010 03:35

Πρόβλημα με ελληνικούς χαρακτήρες

Δημοσίευση από Panos_Smr » 16 Αύγ 2010 19:27

Καλησπέρα σε όλους. Φτιάχνω για πρώτη φορά site και προσπαθώ να φτιάξω την πρώτη σελίδα να φορτώνει με ajax. Δουλεύει, και φαίνεται να επιστρέφονται τα επιθυμητά αποτελέσματα, όμως δεν εμφανίζονται σωστά οι ελληνικοί χαρακτήρες. Ο κώδικας έχει ως εξής:

Το αρχείο main.php:

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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http&#58;//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http&#58;//www.w3.org/1999/xhtml">

	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-7" />
		<title></title>
		<meta name="description" content="Προσωπική ιστοσελίδα" />
		<meta name="keywords" content="" />
		<!--&#91;if  IE 8&#93;>
			<style type="text/css">
				#wrapper &#123;display&#58;table;&#125;
			</style>
		<!&#91;endif&#93;-->
		<?php 
		if &#40;$_GET&#91;'q'&#93; == "printme"&#41; &#123; ?>
<link rel="stylesheet" type="text/css" href="print.css" />
<?php &#125; else &#123; ?>
<link rel="stylesheet" type="text/css" href="style.css" />
		<?php &#125; 
		?>
		<script type="text/javascript">
		<!-- Begin
function popUp&#40;URL&#41; &#123;
day = new Date&#40;&#41;;
id = day.getTime&#40;&#41;;
eval&#40;"page" + id + " = window.open&#40;URL, '" + id + "', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=1,resizable=1,width=900,height=600,left = 510,top = 240'&#41;;"&#41;;
&#125;
// End -->
</script>


<script type="text/javascript">
	function getMain&#40;&#41;&#123;
		if &#40;window.XMLHttpRequest&#41;
			&#123;// code for IE7+, Firefox, Chrome, Opera, Safari
			xmlhttp=new XMLHttpRequest&#40;&#41;;
			&#125;
			else
			&#123;// code for IE6, IE5
			xmlhttp=new ActiveXObject&#40;"Microsoft.XMLHTTP"&#41;;
			&#125;
			xmlhttp.onreadystatechange=function&#40;&#41;
				&#123;
				if &#40;xmlhttp.readyState==4 && xmlhttp.status==200&#41;
					&#123;
					document.getElementById&#40;"maincontent"&#41;.innerHTML=xmlhttp.responseText;
					&#125;
				&#125;
		xmlhttp.open&#40;"POST","getIndex.php",true&#41;;
		xmlhttp.send&#40;&#41;;
&#125;
</script>

	</head>
 
	<body onload="setInterval&#40;'getMain&#40;&#41;',1000&#41;">
		<div class="wrapper">
			<div id="logo">
			</div>
			<div id="container">		
				<div id="left_column">
					<?php
						require&#40;"left_column.php"&#41;;
					?>
				</div> 
				<div id="maincontent">
				
				
				
				
				<div id="print"><a href="javascript&#58;popUp&#40;'?q=printme'&#41;">Εκτυπώσιμη έκδοση</a></div>
				
				
				
				</div>
			</div>
			<div class="push"></div>
		</div>
		<div class="footer">
				<?php
					require&#40;"footer.php"&#41;;
				?>
		</div>
	</body>
</html>
και το αρχείο getIndex.php:

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

<?php


global $db;

function db_open&#40;&#41; &#123;
  @ $db = mysql_pconnect&#40;'localhost', 'XXXX', 'XXXX'&#41; or die&#40;'Δεν μπόρεσε να γίνει σύνδεση με τη βάση δεδομένων'&#41;;
  @ mysql_select_db&#40;'XXXX', $db&#41; or die&#40;'Η βάση δεδομένων δεν βρέθηκε'&#41;;
&#125;

function db_close&#40;&#41; &#123;
  mysql_close&#40;&#41;;
&#125;

db_open&#40;&#41;;
$result = mysql_query&#40;"SELECT * FROM `articles` WHERE first_page='Yes' "&#41;;

while&#40;$row = mysql_fetch_array&#40;$result&#41;&#41;
	&#123;
	
	echo"<p>Aρθρο&#58;<a href='".$row&#91;'article_path'&#93;."'>".$row&#91;'article_name'&#93;."</a></p>";
	
	
	
	&#125;
	
db_close&#40;&#41;;

?>


Eπίσης, το collation της βάσης είναι utf8_general_ci.
Κάθε βοήθεια καλοδεχούμενη...
Ευχαριστώ..

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Πρόβλημα με ελληνικούς χαρακτήρες

Δημοσίευση από korgr » 16 Αύγ 2010 19:34

Αν τα δεδομενα σου ειναι σε utf-8 θα πρεπει να αντικαταστησεις το

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

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-7" />


με το

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

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

Panos_Smr
Δημοσιεύσεις: 6
Εγγραφή: 05 Αύγ 2010 03:35

Πρόβλημα με ελληνικούς χαρακτήρες

Δημοσίευση από Panos_Smr » 16 Αύγ 2010 20:02

Οι ελληνικοί χαρακτήρες που δεν φαίνονται κανονικά, είναι ο,τι επιστρέφεται από το getIndex.php.
Οι υπόλοιποι ελληνικοί χαρακτήρες(εκείνοι που βρίσκονται στα αρχεία που γίνονται require), φαίνονται μια χαρά.
Όταν αλλάζω το:

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

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-7" />
σε:

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

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
απλά δεν φαίνονται και οι υπόλοιποι ελληνικοί χαρακτήρες(από τα αρχεία που γίνονται require)...
Αλλάζοντας την κωδικοποίηση χαρακτήρων στον browser σε ελληνική, πάλι δεν φαίνεται ο,τι επιστρέφεται από το getIndex.php

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

Πρόβλημα με ελληνικούς χαρακτήρες

Δημοσίευση από korgr » 16 Αύγ 2010 22:25

Δοκιμασε να αλλαξεις το

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

function db_open&#40;&#41; &#123; 
  @ $db = mysql_pconnect&#40;'localhost', 'XXXX', 'XXXX'&#41; or die&#40;'Δεν μπόρεσε να γίνει σύνδεση με τη βάση δεδομένων'&#41;; 
  @ mysql_select_db&#40;'XXXX', $db&#41; or die&#40;'Η βάση δεδομένων δεν βρέθηκε'&#41;; 
&#125;

σε

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

function db_open&#40;&#41; &#123; 
  @ $db = mysql_pconnect&#40;'localhost', 'XXXX', 'XXXX'&#41; or die&#40;'Δεν μπόρεσε να γίνει σύνδεση με τη βάση δεδομένων'&#41;; 
  @ mysql_select_db&#40;'XXXX', $db&#41; or die&#40;'Η βάση δεδομένων δεν βρέθηκε'&#41;; 
  mysql_query&#40;"SET CHARACTER_SET_RESULTS=greek"&#41;;
&#125;

Panos_Smr
Δημοσιεύσεις: 6
Εγγραφή: 05 Αύγ 2010 03:35

Πρόβλημα με ελληνικούς χαρακτήρες

Δημοσίευση από Panos_Smr » 17 Αύγ 2010 13:29

Λοιπόν... το πρόβλημα λύθηκε ως εξής:

Στην αρχή του getIndex.php πρόσθεσα:

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

header&#40;'Content-Type&#58; text/html ; charset=ISO-8859-7'&#41;;
και κατόπιν τροποποίησα τη συνάρτηση db_open(); προσθέτοντας το

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

mysql_query&#40;"SET CHARACTER_SET_RESULTS=greek"&#41;;
όπως μου είπες...
τώρα όλα φαίνονται μια χαρά..


Ευχαριστώ πολύ για τη βοήθεια!

Απάντηση

Επιστροφή στο “JavaScript και Frameworks”

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

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