---
title: "Skriva ut \"å\" med imagechar och substr?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/116223-skriva-ut-å-med-imagechar-och-substr"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "muskot"
published: "2004-11-19T02:45:38.000Z"
updated: "2004-11-19T15:01:32.000Z"
replies: 3
views: 221
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/116223-skriva-ut-å-med-imagechar-och-substr"
---

# Skriva ut "å" med imagechar och substr?

## #1 — muskot, 2004-11-19T02:45Z

Nu har jag problem igen, så jag provar att posta igen och hoppas att det går lika bra som förra gången :).

Med denna kodsnutt vill jag skriva alla tecken i $string till en bild. Problemet är att "å" ersätts av "í".

```php
<?php
$string = "ååå";
$im = imagecreate(600, 20);
$bg = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 0, 0, 0);

$i = 0;
$x_pos = 0;
while (strlen($string) > $i) {
	imagechar($im, 2, $x_pos, 0, $string{$i}, $black); // skriver ut "ííí"
	$x_pos = $x_pos + 5;
	$i++;
}

header('Content-type: image/png');
imagepng($im);
?>
```

För att felsöka har jag testat lite olika varianter. Med nedanstående kod får jag in "å" i bildfilen, men förstås endast första tecknet i strängen (vilket tyder på att imagechar() inte har problem med tecknet "å"):

```php
<?php
$string = "ååå";
$im = imagecreate(600, 20);
$bg = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 0, 0, 0);

imagechar($im, 2, 0, 0, $string, $black); // skriver ut "å"

header('Content-type: image/png');
imagepng($im);
?>
```

Denna kodsnutt skriver i textformat ut alla tecken korrekt (vilket tyder på att substr() inte har problem med tecknet "å"): 

```php
<?php
$string = "ååå";
$im = imagecreate(600, 20);
$bg = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 0, 0, 0);

$i = 0;
while (strlen($string) > $i) {
	echo $string{$i}; // skriver ut "ååå"
	$i++;
}
?>
```

 Det verkar alltså vara kombinationen av imagechar() och substr() som strular. Har testat både substr($string, $i, 0) och $string{$i}, med samma resultat.

Hur löser jag detta?

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

## #2 — fiddler, 2004-11-19T07:57Z

Vad får du om du använder imagestring?

Om typsnittet som används inte innehåller å får man istället í. Det känns märkligt att du skulle få ett å med imagechar.

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

## #3 — Matte, 2004-11-19T10:37Z

Vet inte om fiddler glömde ett inte i sitt inlägg, annars håller jag med.

Använder man imagestring() finns inget å i den teckentabell som PHP använder. Det är förmodligen samma teckentabell som imagechar() använder.

Fonten går dock att byta ut. Kollar du i manualen på imagestring finns det där länkar till sida som visar hur det går till, samt fonter du kan använda.

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

## #4 — muskot, 2004-11-19T15:01Z

Mystiskt, när jag körde ovanstående kod i dag lyckades jag inte få imagechar() att skriva ut å. Det går ju ihop med det ni skriver, men samtidigt skulle jag nästan kunna ta gift på att kodsnutt #2 fungerade igår. Måste ha varit väldigt trött :)...

Nu är iaf. problemet löst, använde imagettftext() istället för imagechar().

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

---

Tråden på webben: https://www.webforum.nu/amne/php/116223-skriva-ut-å-med-imagechar-och-substr
