Gå til innhold

Problemer med Charsets


Anbefalte innlegg

Heisann.

 

Jeg har en nettside som bruker charset UTF-8. Jeg har en streng med delimiter ";" som jeg genererte etter en spørring til en MYSQL-database. Hele denne strengen ble så echoet ut via PHP til min javascriptfunksjon. Der skal den så splittes opp, og så legges inn i en rullegardinmeny.

 

Dette fungerer flott bortsett fra at jeg hadde store problemer med å få nøkkelordene til og vises med Æ Ø Å. Dette løste jeg så ved å sette å ø -- osv. inn i mysql. Problemet med denne løsningen er at det nå blir nye linjer i rullegardinmenyen etter en Æ, Ø eller Å.

 

F.eks.

 

 

"Miljø

 

Mat

Ø

konomi"

 

Her er koden;

 

/* Leggtil.js */

function HentNokkelord(input)
{
var id = input.id;
var value = input.value;

$.post("../hentnokkelord.php", { inputdata: value },

	function(data)
	{
		document.getElementById("nokkelordvalg").innerHTML = "";

		if(data != "")
		{
			var nokkelordArray = data.split(";");
			for(var i = 0; i < nokkelordArray.length - 1; i++)
			{
				document.getElementById("nokkelordvalg").innerHTML += "<option value='" + nokkelordArray[i] + "'>" + nokkelordArray[i] + "</option>";
			}
		}
		else
		{
			document.getElementById("nokkelordvalg").innerHTML += "<option value='ingen'>" + "Velg nøkkelord" + "</option>";
		}

		});
}

$(document).ready(function()
{
	$("#kategorivalg").click(function()
	{
						HentNokkelord(this);
	});

});

 

/* HentNokkelord.php */
$valgtKategori = $_POST["inputdata"];

if(get_magic_quotes_gpc())
{
$valgtKategori = stripslashes($valgtKategori);
}

$valgtKategori = mysql_real_escape_string($valgtKategori);

if(!$ztilkobling)
die("Feil: " . mysql_error());

$qNokkelord = "SELECT * FROM Nokkelord WHERE kategori='$valgtKategori'";
$resNokkelord = mysql_query($qNokkelord, $ztilkobling);

$utstreng = "";

while($rad = mysql_fetch_array($resNokkelord))
{
$utstreng .= $rad["nokkelord"] . ";";	
}

echo $utstreng;

mysql_close($ztilkobling);
?>

 

Håper noen har muligheten til å hjelpe eller komme med innspill :)

Endret av jabberjab
Lenke til kommentar
Videoannonse
Annonse
Veit ikke om det løser problemet ditt, men det er greit om du er sikker på at MySQL bruker ønsket charset.

 

http://no2.php.net/manual/en/function.mysql-set-charset.php

 

Undersøkte charsettet slik som du foreslå. Fikk beskjed om Latin1, selv om det står utf_8 over det hele i phpMyAdmin. Jeg tok så og satte charsettet til utf8 via mysql_set_charset().. Har dog fortsatt samme problemet.

 

Her er en del av koden som setter et nøkkelord inn i databasen

 

mysql_set_charset("utf8", $con);
mysql_query("INSERT INTO Nokkelord(nokkelord, kategori, url) VALUES('Håndball', 'Sport', 'Haandball')", $con);

 

Jeg har også prøvd å sette Håndball inn. Ved å sette inn Håndball rett frem vises KUN en 'H' i dropdownlisten. Setter jeg inn Håndball inn får jeg håndball som et valg i rullegardinmenyen, men da med en tom linje under som illustrert i dette bildet;

8768.jpg

 

En annen ting er at alt annet i databasen blir outputta bra med norske bokstaver, det er kun det som går via Javascript som skaper problemer.. Altså echo i PHP på verdier fra databasen ser bra ut..

Det er kun innerHTML i javascriptet som blir fucked. Det skal dog sies at dersom jeg skriver ut "ØÆÅ" via javascriptet istedenfor å printe ut verdier fra arrayet nokkelordArray så popper ØÆÅ opp, så feilen må jo skje i det PHP echo'er strengen til javascriptet.

 

Jeg har nå kommet hit, men der stopper det.

8769.jpg

Endret av jabberjab
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...