---
title: "Hur få en php-mailer att skriva svenska tecken rätt?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/181016-hur-få-en-php-mailer-att-skriva-svenska-tecken-rätt"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Danne V"
published: "2009-10-31T15:22:52.000Z"
updated: "2009-10-31T16:51:51.000Z"
replies: 4
views: 1996
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/181016-hur-få-en-php-mailer-att-skriva-svenska-tecken-rätt"
---

# Hur få en php-mailer att skriva svenska tecken rätt?

## #1 — Danne V, 2009-10-31T15:22Z

Använder en ganska enkel mailer (se nedan).
De svenska tecken som finns i skriptet kommer fram OK. Men de tecken som användaren skrivit in i formuläret blir skit. Å blir Ã¥, ä blir Ã&#8364; och ö blir Ã¶.
Både formuläret och skriptet är sparade i utf-8.

Men det verkar antingen som att det skiter sig mellan formuläret och skriptet, och då är det väl någon inställning som ska göras på servern?

Eller så är det väl skriptet som behöver tala om att själva meddelandet ska skickas som content-type:text/plain och charset: utf-8, samt content-transfer-encoding 8bit?

```php
<?php
$name		= $_POST["name"];
$phone		= $_POST["phone"];
$company	= $_POST["company"];

$message	= $_POST["message"];
$from		= $_POST["from"];
$verif_box	= $_POST["verif_box"];

$msg_body =  "Hej\n"
			."Ett nytt mail har kommit från hemsidan!\n\n"
			."Namn....: " . $name . "\n"
			."E-post..: " . $from . "\n"
			."Telefon.: " . $phone . "\n"
			."Företag.: " . $company . "\n\n"
			."Meddelande:\n"
			.stripslashes($message);

$from = stripslashes($from); 

// check to see if verificaton code was correct
if(md5($verif_box).'a4xn' == $_COOKIE['blabla']){
	// if verification code was correct send the message and show this page
	mail("mottagare@mottagare.se", 'Här kommer mail!', $_SERVER['REMOTE_ADDR']."\n\n".$msg_body, "From: $from");
	// delete the cookie so it cannot sent again by refreshing this page
	setcookie('blabla','');
} else {
	// if verification code was incorrect then return to contact page and show error
	header("Location:".$_SERVER['HTTP_REFERER']."?subject=$subject&from=$from&message=$message&wrong_code=true");
	exit;
}
?>
```

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

## #2 — nitro2k01, 2009-10-31T15:27Z

Du måste ange vilket charset du använder, mao UTF-8.
Den länkade kommentaren och den under bör lösa ditt problem.
<http://www.php.net/manual/en/function.mail.php#92976>

Alternativt kör utf8_decode på strängarna för att konvertera den till ISO-8859 innan du skickar den.
<http://php.net/manual/en/function.utf8-decode.php>

Edit: För övrigt ser jag att du använder stripslashes. Det vore bättre att [stänga av magic quotes](http://php.net/manual/en/security.magicquotes.disabling.php) och, ta bort stripslashes och istället säkra dina DB-data själv med [mysql_real_escape_string](http://php.net/manual/en/function.mysql-real-escape-string.php). Detta eftersom magic quotes är på väg att försvinna från PHP, och då kommer alla som förlitar sig på det att riskera att utsätta sig för SQL-injections.

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

## #3 — Danne V, 2009-10-31T15:46Z

> **[nitro2k01 skrev:](https://www.webforum.nu/p/1486483)**
>
> Du måste ange vilket charset du använder, mao UTF-8.
> Den länkade kommentaren och den under bör lösa ditt problem.
> <http://www.php.net/manual/en/function.mail.php#92976>
> 
> Alternativt kör utf8_decode på strängarna för att konvertera den till ISO-8859 innan du skickar den.
> <http://php.net/manual/en/function.utf8-decode.php>
> 
> Edit: För övrigt ser jag att du använder stripslashes. Det vore bättre att [stänga av magic quotes](http://php.net/manual/en/security.magicquotes.disabling.php) och, ta bort stripslashes och istället säkra dina DB-data själv med [mysql_real_escape_string](http://php.net/manual/en/function.mysql-real-escape-string.php). Detta eftersom magic quotes är på väg att försvinna från PHP, och då kommer alla som förlitar sig på det att riskera att utsätta sig för SQL-injections.

Jag kan nada om php (tyvärr), men försökte att ange bl.a. charset på olika sätt utan att det löste problemet. Jag vet helt enkelt inte var eller hur sådan kod ska läggas in.

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

## #4 — nitro2k01, 2009-10-31T16:13Z

Pröva detta:

```php
<?php
$name		= $_POST["name"];
$phone		= $_POST["phone"];
$company	= $_POST["company"];

$message	= $_POST["message"];
$from		= $_POST["from"];
$verif_box	= $_POST["verif_box"];

$msg_body =  "Hej\n"
			."Ett nytt mail har kommit från hemsidan!\n\n"
			."Namn....: " . $name . "\n"
			."E-post..: " . $from . "\n"
			."Telefon.: " . $phone . "\n"
			."Företag.: " . $company . "\n\n"
			."Meddelande:\n"
			.stripslashes($message);

$from = stripslashes($from); 

// check to see if verificaton code was correct
if(md5($verif_box).'a4xn' == $_COOKIE['blabla']){
	// if verification code was correct send the message and show this page
	$msg_body_iso = utf8_decode($msg_body);
	$msg_subject_iso = utf8_decode('Här kommer mail!');
	mail("mottagare@mottagare.se", $msg_subject_iso, $_SERVER['REMOTE_ADDR']."\n\n".$msg_body_iso, "From: $from");
	// delete the cookie so it cannot sent again by refreshing this page
	setcookie('blabla','');
} else {
	// if verification code was incorrect then return to contact page and show error
	header("Location:".$_SERVER['HTTP_REFERER']."?subject=$subject&from=$from&message=$message&wrong_code=true");
	exit;
}
?>
```

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

## #5 — Danne V, 2009-10-31T16:51Z

> **[nitro2k01 skrev:](https://www.webforum.nu/p/1486487)**
>
> Pröva detta:

Funkar kanon! Tusen tack f hjälpen!!!!  (y)  (y)  (y)

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

---

Tråden på webben: https://www.webforum.nu/amne/php/181016-hur-få-en-php-mailer-att-skriva-svenska-tecken-rätt
