---
title: "Valideringsproblem med länk"
type: "forum-thread"
url: "https://www.webforum.nu/amne/html-css/134979-valideringsproblem-med-länk"
topic: "HTML & CSS"
topic_url: "https://www.webforum.nu/amne/html-css"
author: "Melea"
published: "2005-09-29T11:50:09.000Z"
updated: "2005-10-01T13:26:18.000Z"
replies: 16
views: 531
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/html-css/134979-valideringsproblem-med-länk"
---

# Valideringsproblem med länk

## #1 — Melea, 2005-09-29T11:50Z

Hejhej,

har problem att validera en länk, ser absolut inget fel på den, eller hur man ska fixa till det. Såhär ser länken ut:

```
<a href="http://www.coop.se/includefiles/MODULER/CCMS/show_page.asp?iMappeID=180&amp;sSideNavn=Sök+recept" target="_blank">Sök recept på Coop</a>
```

Och felmeddelandet jag får är

> **W3C skrev:**
>
> error: \<...\> escaping malformed URI reference
> Cause:
> 
> An URI contains non-authorized characters. Or the quotes around the URI are not closed.

Jag antar att det har med "non-authorized character", men vad är det för tecken som inte är tillåtet?

Tack på förhand

**/r** Kan ju tillägga att jag kör med denna doctypen:

```
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
```

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

## #2 — @nders, 2005-09-29T11:51Z

Kan det vara ö:et kanske?

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

## #3 — Melea, 2005-09-29T11:53Z

> **@nders skrev:**
>
> Kan det vara ö:et kanske?

Jag har testat att byta ut ö mot &ouml; men det vill sig ändå inte.

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

## #4 — Melea, 2005-09-29T11:57Z

Verkar som det var ö:et som strulade till det, gick in och tog bort det, och nu validerar länken.
Kan man komma undan detta på något sätt? Eller går det inte att ha å ä ö i länkar?

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

## #5 — Fuel, 2005-09-29T13:04Z

nåt med charset kanske ? iso-8859-1

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

## #6 — Melea, 2005-09-29T13:23Z

Den är inställd på iso-8859-1. :l

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

## #7 — Insider, 2005-09-29T14:09Z

I en URI tillåts bara tecken som tillhör US-ASCII. Validatorn följer troligen det regelverket.
Man måste ersätta alla övriga tecken med ett decimaltecken samt två hex-värden.
Exempelvis blir ö: "%F6".
<http://www.ietf.org/rfc/rfc2396.txt>

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

## #8 — Melea, 2005-09-29T14:59Z

Det funkar! :)
Jag gjorde en funktion i PHP för att ersätta fel med rätt tecken.
Om det är någon som har samma problem i framtiden.

```php
function url($text) {

	$search = array('å', 'ä', 'ö', 'Å', 'Ä', 'Ö');
	$replace = array('%E5', '%E4', '%F6', '%C5', '%C4', '%D6');
	$text = str_replace($search, $replace, $text);
	return $text;

}
```

Tack så mycket Insider!

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

## #9 — zcorpan, 2005-09-29T15:11Z

Hur får du "ö" till "%F6"? URIer omvandlas till UTF-8, oavsett vilken charset dokumentet använder.

```
<a href="http://www.coop.se/includefiles/MODULER/CCMS/show_page.asp?iMappeID=180&amp;sSideNavn=S%C3%B6k+recept">
```

I PHP använder du [urlencode()](http://se.php.net/urlencode). :)

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

## #10 — Erik Juhlin, 2005-09-29T15:14Z

> **Melea skrev:**
>
> Det funkar! :)
> Jag gjorde en funktion i PHP för att ersätta fel med rätt tecken.
> Om det är någon som har samma problem i framtiden.
>
> ```php
> function url($text) {
> 
> 	$search = array('å', 'ä', 'ö', 'Å', 'Ä', 'Ö');
> 	$replace = array('%E5', '%E4', '%F6', '%C5', '%C4', '%D6');
> 	$text = str_replace($search, $replace, $text);
> 	return $text;
> 
> }
> ```
>
> Tack så mycket Insider!

Har inte PHP en riktig URL-encode funktion? Den där funktionen är skräp eftersom den inte klarar av alla specialtecken.

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

## #11 — Melea, 2005-09-29T15:21Z

Dåså. :)
Kör med urlencode() nu istället, funkar utmärkt. :)

Tack än en gång!

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

## #12 — Insider, 2005-09-29T16:40Z

> **zcorpan skrev:**
>
> Hur får du "ö" till "%F6"?

Jag utgick att det motsvarade ö eftersom FF omvandlar adressen automatiskt när man går in på länken:
<http://www.coop.se/includefiles/MODULER/CCMS/show_page.asp?iMappeID=180&sSideNavn=Sök+recept>

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

## #13 — Melea, 2005-09-29T17:16Z

Well, fel forum, men dumt att korsposta så jag frågar här.
Om jag skriver urlencode('http://www.coop.se/includefiles/MODULER/CCMS/show_page.asp?iMappeID=180&sSideNavn=Sök+recept') så blir länken <http://www.minsida.se/http://www.coop.se/includefiles/MODULER/CCMS/show_page.asp?iMappeID=180&sSideNavn=Sök+recept>.
Why so?

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

## #14 — zcorpan, 2005-09-29T18:14Z

För mig blir det:

```
http%3A%2F%2Fwww.coop.se%2Fincludefiles%2FMODULER%2FCCMS%2Fshow_page.asp%3FiMappeID%3D180%26sSideNavn%3DS%C3%B6k%2Brecept
```

...men du ska nog inte urlencoda hela adressen... Det borde se ut ungefär såhär tror jag:

```php
<?php

$iMappeID = urlencode('180');
$sSideNavn = urlencode('Sök+recept');
echo "http://www.coop.se/includefiles/MODULER/CCMS/show_page.asp?iMappeID=$iMappeID&amp;sSideNavn=$sSideNavn";

?>
```

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

## #15 — Melea, 2005-09-30T17:24Z

Hm, okej... Så det är bara på querystringarna man ska köra urlencode? Hur gör jag isåfall om jag har ett länkarkiv i en databas, och ska skriva ut det?

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

## #16 — Melea, 2005-10-01T09:21Z

Jag löste det såhär:

```php
$query = parse_url($rows_link['Link']);
$query = urlencode($query['query']);

$pos = strpos($rows_link['Link'], '?');

if($pos == true) {
	$http = explode('?', $rows_link['Link']);
	$http[0] = $http[0].'?';
} else {
	$http[0] = $rows_link['Link'];
}

echo $http[0].$query;
```

Finns säkert något smidigare sätt att lösa det på, men detta funkade. :)

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

## #17 — Broms, 2005-10-01T13:26Z

gör om ö till &#246; kanske?

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

---

Tråden på webben: https://www.webforum.nu/amne/html-css/134979-valideringsproblem-med-länk
