Set locale

I have a script that extracts data from a mysql database. I works great until I extract a text that contains danish characters like æ, ø and å.

The output looks like this:
Tilmeld dig vores nyhedsbrev og v¿r med i konkurrencen om et gavekort p¿ 25.000 kr til dit favorit indk¿bscenter!

but it should look like this:
Tilmeld dig vores nyhedsbrev og vær med i konkurrencen om et gavekort på 25.000 kr til dit favorit indkøbscenter!

The script is this one:
 
<?php
$link = mysql_connect('mysql.myserver.dk:3306', 'username', 'password');
if (!$link) {
    die('could not connect: ' . mysql_error());
}
mysql_select_db('database_bk', $link);

$my_date=date('c');
$query="select * FROM `content_type_konkurrence` WHERE '$my_date' BETWEEN `field_konk_start_value` AND `field_konk_slut_value`";
$result=mysql_query($query) or die(mysql_error());

while($row=mysql_fetch_assoc($result)) {

    echo "
<a class='konk_link' href='" . $row['field_konk_url_value'] . "'><div class='konk_div'>
<img src='http://www.mydomain.dk/files/" . $row['field_konk_billede_value'] . "' alt='" . $row['field_konk_titel_value'] . "' class='konk_billede' />
<span class='konk_tekst'><b class='konk_titel'>" . $row['field_konk_titel_value'] . "</b><br /><br />" . $row['field_konk_tekst_value'] . "</span></div></a><br />";
	
}

mysql_close($link);
?>

Open in new window


What must I do to replace those anoying ¿ with the danish characters.

Best regards
Kasper K
Kasper KatzmannSeniorkonsulentAsked:
Who is Participating?
 
MestikaCommented:
Hi Kasper,

I am myself danish so I have dealt with this problem numerous times before. There are a lot of good articles which takes care of this subject but here are some key points.

You need to both specify your Database and your PHP code.

One thing you can start to try is to set your database to use utf8, in your php - database code:
mysql_set_charset('utf8');

like this:

mysql_set_charset('utf8');
$query="select * FROM `content_type_konkurrence` WHERE '$my_date' BETWEEN `field_konk_start_value` AND `field_konk_slut_value`";
$result=mysql_query($query) or die(mysql_error())

More, you can set the default charset in your database (assuming you use MySQL) to utf8 in your my.ini file.
0
 
Kasper KatzmannSeniorkonsulentAuthor Commented:
Ohh my god...

Was it that easy. I have tried with setlocale, but that didn't work at all. But you suggestion worked at once.

Thank you very much.
Jeg gi'r en øl (I buy you a beer)
0
 
MestikaCommented:
Yeah it is that easy, but trust me, I created a whole method to begin with to work around the problem until I discovered how little it took to make it work.

I'm looking forward to the beer :-)
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.