---
title: "Problem med åäö vid setlocale"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/187083-problem-med-åäö-vid-setlocale"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "dude"
published: "2011-06-05T19:05:38.000Z"
updated: "2011-08-04T07:41:27.000Z"
replies: 13
views: 3807
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/187083-problem-med-åäö-vid-setlocale"
---

# Problem med åäö vid setlocale

## #1 — dude, 2011-06-05T19:05Z

Har en databas och använder följande för att hämta ut datum:

```php
setlocale(LC_ALL, "sv_SE", "sv_SE.utf-8", "sv", "swedish");
 
$startdatum = ucfirst(strftime("%A, %e %B, %Y", strtotime($row['startdatum'])));
```

Vilket ger resultatet:
S&#65533;ndag, 12 december, 2010

I headern har jag följande: 

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

Om jag ändrar headern till: 

```
<meta http-equiv="Content-Style-Type" content="text/css">
```

Så skrivs datumen korrekt ut, men då blir det istället konstiga tecken på å ä ö i data som plockas ut från databasen.

Skulle bli oerhört glad om någon har en bra lösning på detta, har sökt efter svar i timmar utan att få koll på det...

Permalänk: https://www.webforum.nu/p/187083

## #2 — Nate.A, 2011-06-09T09:05Z

Har du kontrollerat att php-filen också har utf-8 encoding?

Permalänk: https://www.webforum.nu/p/2279797

## #3 — dude, 2011-06-09T09:52Z

Hur kontrollerar men det?

Permalänk: https://www.webforum.nu/p/2279801

## #4 — Nate.A, 2011-06-09T13:58Z

Det beror på vad du kodar i för program. I ex. Dreamweaver så hittar du den inställningen under Ändra-\>Sidegenskaper...-\>Titel/Kodning \> Kodning

Permalänk: https://www.webforum.nu/p/2279808

## #5 — Danne V, 2011-06-09T15:01Z

Databasen ska ha "collation utf-8 general (eller swedish)"
php-sidorna ska vara sparade som utf-8 (som Nate föreslår).

Permalänk: https://www.webforum.nu/p/2279811

## #6 — dude, 2011-08-01T13:53Z

Hmm... får det inte att fungera, har följande inställningar på databasen:

\--Kopierat från phpmyadmin--
MySQL teckenuppsättning: UTF-8 Unicode (utf8)
Kollation för MySQL-uppkoppling: utf8_swedish_ci

I Dreamweaver har jag följande inställningar på mina php-sidor:
Document type (DTD): XHTML 1.0 Transitional 
Encoding: Unicode (UTF-8)
Unicode Normalization Form: c (Canonical Decomposition followed by Canonical Composition)

Ändå så blir det fel tecken när å, ä och ö ska skrivas ut. Finns inget sätt att ändra i phpmyadmin på teckenuppsättningen heller. Någon som vet vad det är som spökar?

Permalänk: https://www.webforum.nu/p/2281532

## #7 — dude, 2011-08-03T21:18Z

Någon som har en aning om vad som kan vara fel?

Eller kanske vet någon bra länk där man kan läsa mer om å ä ö och olika åtgärder för att lösa problemet?

Permalänk: https://www.webforum.nu/p/2281605

## #8 — dude, 2011-08-03T21:43Z

När jag plockar bort htmlentities så blir det rätt. Men det känns ju inte som en jättebra lösning heller, vill ju inte skriva ut någon på webbsidan utan att först kört htmlentities...

Om jag skriver ut tex.
row\['namn'\]
så blir det rätt: Åsa

Om jag skriver ut
htmlentities(row\['namn'\])
så blir det fel: Ã&#65533;sa

Permalänk: https://www.webforum.nu/p/2281608

## #9 — Oldtimer, 2011-08-03T21:45Z

Vad skulle hända om du bara smackade på utf8_encode() runt din uträkning av startdatum?

Permalänk: https://www.webforum.nu/p/2281609

## #10 — dude, 2011-08-03T21:54Z

> **[Oldtimer skrev:](https://www.webforum.nu/p/1538210)**
>
> Vad skulle hända om du bara smackade på utf8_encode() runt din uträkning av startdatum?

Det funkar ju helt perfekt! Tack för den!!

Får fortfarande inte rätt på det när jag plockar ut text från databasen och kör htmlentities på den uthämtade datan. Men allt annat funkar ju faktiskt nu, kanske man kan göra någon egen funktion istället för htmlentities som bara förhindrar html-taggar!?

Permalänk: https://www.webforum.nu/p/2281611

## #11 — Oldtimer, 2011-08-04T00:32Z

htmlentities förutsätter väl att strängen är i ISO-8859-1 om inget annat anges. Och dina strängar från databasen är väl UTF-8? Så du borde väl behöva ange det?
Typ:

```
htmlentities(row['namn'], ENT_COMPAT, "UTF-8")
```

eller något sådant.

Permalänk: https://www.webforum.nu/p/2281618

## #12 — dude, 2011-08-04T05:38Z

> **[Oldtimer skrev:](https://www.webforum.nu/p/1538221)**
>
> htmlentities förutsätter väl att strängen är i ISO-8859-1 om inget annat anges. Och dina strängar från databasen är väl UTF-8? Så du borde väl behöva ange det?
> Typ:
>
>
> ```
> htmlentities(row['namn'], ENT_COMPAT, "UTF-8")
> ```
>
> eller något sådant.

Än en gång tack så mycket! Funkar strålande nu!

Det enda som fortfarande spökar är när jag skriver: '

Till exempel: O'Brian

Jag skickar det via ett formulär och utan att köra någon som helst funktion på fältet (endast hämta med $\_POST) så skrivs det ut: O\\'Brian

Det verkar precis som att det är någon inställning på webbhotellet, kan det vara så? På skärmen vill jag ju att det ska stå O'Brian såklart...

Permalänk: https://www.webforum.nu/p/2281625

## #13 — Danne V, 2011-08-04T07:25Z

> **[dude skrev:](https://www.webforum.nu/p/1538228)**
>
> Än en gång tack så mycket! Funkar strålande nu!
> 
> Det enda som fortfarande spökar är när jag skriver: '
> 
> Till exempel: O'Brian
> 
> Jag skickar det via ett formulär och utan att köra någon som helst funktion på fältet (endast hämta med $\_POST) så skrivs det ut: O\\'Brian
> 
> Det verkar precis som att det är någon inställning på webbhotellet, kan det vara så? På skärmen vill jag ju att det ska stå O'Brian såklart...

Strip slashes:
<http://www.google.com/search?client=safari&rls=en&q=php+strip+slashes&ie=UTF-8&oe=UTF-8>

Permalänk: https://www.webforum.nu/p/2281629

## #14 — dude, 2011-08-04T07:41Z

Tack alla för all hjälp!

Funkar stålande!

Permalänk: https://www.webforum.nu/p/2281630

---

Tråden på webben: https://www.webforum.nu/amne/php/187083-problem-med-åäö-vid-setlocale
