Gå til innhold

PHP + AJAX = æøå issues


Anbefalte innlegg

enmnet sier alt, jeg har et AJAX script som henter en PHP fil, men resultatet viser ikke æøå. Jeg henter all infoen fra en mysql database med scriptet, og hvis jeg kjører php fila vanlig i nettleseren er det ikke noe problemer. what is a noob to do??

 

koden min:

<!DOCTYPE HTML>
<html>
<head>
	<title>
		Lorem ipsum dolor sit amet
	</title>
	<script type="text/javascript">
		function loadXMLDoc()
		{
		if (window.XMLHttpRequest)
		  {// code for IE7+, Firefox, Chrome, Opera, Safari
		  xmlhttp=new XMLHttpRequest();
		  }
		else
		  {// code for IE6, IE5
		  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
		  }
		xmlhttp.onreadystatechange=function()
		  {
		  if (xmlhttp.readyState==4 && xmlhttp.status==200)
			{
			document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
			}
		  }
		xmlhttp.open("GET","test.php",true);
		xmlhttp.send();
		}
	</script>
</head>
<body>
	<div id="wrapper">
		<div id="banner">

		</div>
		<div>
			<button type="button" onclick="loadXMLDoc()">Change Content</button>
		</div>
		<div>
			<div id="myDiv"><h2>Let AJAX change this text</h2></div>

		</div>
		<div></div>
		<div></div>
	</div>
</body>
</html>

resultat,(etter jeg har aktivert scriptet):

post-147562-0-52752100-1294759558_thumb.png

Lenke til kommentar
Videoannonse
Annonse

Viser tegnene riktig i databasen?

 

Sett tegnsettet via HTML.

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

Jepp og bruker samme meta du nevner over i alle mine dokumenter for å unngå nettopp dette. Bruker som sagt den samme infoen og PHP scriptet andre steder hvor det funker utmerket med æøå. Kan det ha noe med at informasjonen blir gjort om til XML? isåfall ville ikke da det bli oversatt tilbake når tegnsettet er definert i meta, istedenfor å presantere "ukjent tegn"-tegnet??

Lenke til kommentar

Å legge til en meta-tag vil i dette tilfellet ikke hjelpe. Primært fordi meta-tagen bare er veiledende og blir nedprioritert i forhold til en tilsvarende HTTP-header. For det andre er det rare tegnet et erstattningstegn i Unicode for ugyldige tegn. Teksten blir altså allerede vist som Unicode, høyst sannsynligvis med UTF-8 enkoding.

 

Det man må finne ut er hva ting faktisk er lagret i, og hva man faktisk ønsker å bruke av tegnsett. Høyst sannsynligvis er teksten man henter inn lagret i ISO 8859-1. Enten må man da vise siden i dette eller konvertere teksten til Unicode/UTF-8.

Endret av Ernie
Lenke til kommentar

Å legge til en meta-tag vil i dette tilfellet ikke hjelpe. Primært fordi meta-tagen bare er veiledende og blir nedprioritert i forhold til en tilsvarende HTTP-header. For det andre er det rare tegnet et erstattningstegn i Unicode for ugyldige tegn. Teksten blir altså allerede vist som Unicode, høyst sannsynligvis med UTF-8 enkoding.

 

Det man må finne ut er hva ting faktisk er lagret i, og hva man faktisk ønsker å bruke av tegnsett. Høyst sannsynligvis er teksten man henter inn lagret i ISO 8859-1. Enten må man da vise siden i dette eller konvertere teksten til Unicode/UTF-8.

Sjekket innom phpmyadmin, det er "latin1_swedish_ci" dataene er lagret i. er ikke det UTF-8 enkoding?

Lenke til kommentar

Å legge til en meta-tag vil i dette tilfellet ikke hjelpe. Primært fordi meta-tagen bare er veiledende og blir nedprioritert i forhold til en tilsvarende HTTP-header. For det andre er det rare tegnet et erstattningstegn i Unicode for ugyldige tegn. Teksten blir altså allerede vist som Unicode, høyst sannsynligvis med UTF-8 enkoding.

 

Det man må finne ut er hva ting faktisk er lagret i, og hva man faktisk ønsker å bruke av tegnsett. Høyst sannsynligvis er teksten man henter inn lagret i ISO 8859-1. Enten må man da vise siden i dette eller konvertere teksten til Unicode/UTF-8.

Sjekket innom phpmyadmin, det er "latin1_swedish_ci" dataene er lagret i. er ikke det UTF-8 enkoding?

 

Utf-8 er utf-8.

Selv kjører jeg meta-tag med UTF-8, "SET CHARACTER UTF8" når jeg kobler til databasen og filene er lagret som utf-8. Database-tabellene er latin1.

 

Ø,æ og å fungerer utmerket da :)

 

Vanligvis fungerer ø, æ, å med ISO8859-1/"vesteuropeisk" også, så lenge du ikke begynner tulle med charset på lagring av filer.

Endret av Thomas.
Lenke til kommentar

Å legge til en meta-tag vil i dette tilfellet ikke hjelpe. Primært fordi meta-tagen bare er veiledende og blir nedprioritert i forhold til en tilsvarende HTTP-header. For det andre er det rare tegnet et erstattningstegn i Unicode for ugyldige tegn. Teksten blir altså allerede vist som Unicode, høyst sannsynligvis med UTF-8 enkoding.

 

Det man må finne ut er hva ting faktisk er lagret i, og hva man faktisk ønsker å bruke av tegnsett. Høyst sannsynligvis er teksten man henter inn lagret i ISO 8859-1. Enten må man da vise siden i dette eller konvertere teksten til Unicode/UTF-8.

Sjekket innom phpmyadmin, det er "latin1_swedish_ci" dataene er lagret i. er ikke det UTF-8 enkoding?

 

Utf-8 er utf-8.

Selv kjører jeg meta-tag med UTF-8, "SET CHARACTER UTF8" når jeg kobler til databasen og filene er lagret som utf-8. Database-tabellene er latin1.

 

Ø,æ og å fungerer utmerket da :)

 

Vanligvis fungerer ø, æ, å med ISO8859-1/"vesteuropeisk" også, så lenge du ikke begynner tulle med charset på lagring av filer.

Jeg har nå gått igjennom alt, også convertert databasen, alt er UTF-8, kan det være at jeg må definere karaktersettet i AJAX XMLHttpRequest-funksjonen?? for problemet vedvarer :(

Endret av frankhaugen
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...