---
title: "Korrekt åtgärd för \"non SGML character number\""
type: "forum-thread"
url: "https://www.webforum.nu/amne/html-css/140649-korrekt-åtgärd-för-non-sgml-character-number/page2"
topic: "HTML & CSS"
topic_url: "https://www.webforum.nu/amne/html-css"
author: "lillebror"
published: "2006-01-10T19:54:32.000Z"
updated: "2006-01-12T23:12:18.000Z"
replies: 36
views: 1316
page: 2
pages: 2
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/140649-korrekt-åtgärd-för-non-sgml-character-number"
---

# Korrekt åtgärd för "non SGML character number"

_Sida 2 av 2._

## #21 — lillebror, 2006-01-11T13:54Z

Ska jag redan när jag sparar informationen i databasen ersätta dessa tecken med "rätt tecken" eller ska jag ersätta de när jag visar, låt säga artikeln?

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

## #22 — Mozfan, 2006-01-11T17:30Z

> **lillebror skrev:**
>
> Någon gång har jag syndat att öppna filen i exempelvis wordpad. Är det det som ställer till det enligt erat tidigare resonemang? Anledningen att jag gjorde det var för att vid ett tillfälle då jag öppnade samma fil i notepad så var den helt felformaterad. Texten/alla tecken bara löpte efter varandra...väldigt svårt att se vad som var vad då. Då öppnade jag den i WordPad vilket kanske var mindre bra.

Ja, Wordpad är ju en enklare variant av Word, dvs en ordbehandlare modell "WYSIWYG" som man kan kalla det, där man kan styla texten. Notepad skriver bara "rå" text som man inte kan styla på något sätt.

Om Notepad visade all text som en enda lång rad, beror kanske på att du inte har ställt in den till att radbryta (under "Redigera" i menyn)? Prova det.

> **tanten skrev:**
>
> Skulle också skriva att allt som finns som också används som kodtecken som t.ex " eller & eller vad det nu kan vara, får inte användas i text. Då kan det missuppfattas av webläsaren. Alla dessa tecken har en annan kod.  Kan vara &ldquo; före och &rdquo; efter det som ska citeras. Förmodligen enklast om du använder ett annat språk för att hämta informationen och då får du peta in det i den koden.

Bara delvis rätt! :) Jag använder vanliga citattecken (dvs ") och även & på mina webbsidor utan problem. Att använda entities för dessa tecken så som du visar är helt onödigt, åtminstone om man använder rätt teckenkodning för webbsidan. Alla "moderna" (inkluderar väl alla versioner från de senaste 6-7 åren i alla fall) webbläsare kan då tolka tecknen rätt, på samma sätt som dom kan tolka å, ä, och ö i det svenska alfabetet.

Där du inte kan använda "&" är när den förekommer i ett sammanhang där det inte finns något mellanslag mellan detta tecken och tecknen närmast intill. Då tolkas "&" som en del av en entities, som ju alltid inleds med ett "&" och avslutas med ";"

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

## #23 — hypatia, 2006-01-11T18:01Z

> **lillebror skrev:**
>
> Ska jag redan när jag sparar informationen i databasen ersätta dessa tecken med "rätt tecken" eller ska jag ersätta de när jag visar, låt säga artikeln?

Det är ju en smaksak. ;)

Jag skulle ha ersatt dem med rätt tecken redan i databasen. Det känns liksom bättre.

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

## #24 — tanten, 2006-01-11T19:44Z

Mozfan:

> Bara delvis rätt!  Jag använder vanliga citattecken...

Så får jag då åter igen konstatera att jag ibland svarar för snabbt utan att kontrollera först...  :r  Detta har ju inget med valideringen hos W3 att göra. Snarare valideringen hos bl.a. WAI...  för att göra hemsidan tillgänglig inte bara för webben.  :) 
Och det är väl också en av de större anledningarna till varför man vill använda xhtml innan xml har fullt stöd... Cyklar jag nu   :q 

Så jag tycker nog ändå att man ska fortsätta med att undvika både tecken och depracated element.  §jr

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

## #25 — lillebror, 2006-01-11T19:59Z

Detta kodexempel hittade jag på php.net: 

```
function decode_entities($text) {
   $text= html_entity_decode($text,ENT_QUOTES,"ISO-8859-1"); #NOTE: UTF-8 does not work!
   $text= preg_replace('/&#(\d+);/me',"chr(\\1)",$text); #decimal notation
   $text= preg_replace('/&#x([a-f0-9]+);/mei',"chr(0x\\1)",$text);  #hex notation
   return $text;
}
```

Dock verkar den inte ersätta de konstiga tecknena med rätt tecken eftersom jag fortfarande har kvar felen när jag validerar index-sidan :OO

Vad göra?

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

## #26 — sputnik, 2006-01-11T20:04Z

> **lillebror skrev:**
>
> ...hur gör jag för att åtgärda det...

testa med  &quot;  isället för  "

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

## #27 — lillebror, 2006-01-11T20:08Z

Sedan när man tittar på index-sidan så ser dubbelfnuttarna olika ut om man tittar på rubrikerna i den bifogade bilden. De första rubriken ser normala ut medan de i andra rubriken ser kursiva ut!? Jättekonstigt! De loopas ju ut genom samma kod(funktion). Har även tittat i databasen och där ser dubbelfnuttarna lika ut på båda ställena.

Bilagor:

- [bild.jpg](https://www.webforum.nu/a/9192.jpg)

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

## #28 — tanten, 2006-01-11T20:58Z

Jag tog ner din sida... la dit lang="sv" (du har fortfarande bara xml:lang="sv")
La dit ett mellanrum på de platser som \<br /\> inte hade ett mellanslag. La dit &amp; i Gott nytt år. Tog bort cellspacing och cellpadding i table och la till en \</div\>, hade "" (inga specialtecken) omkring de ord du hade det från början på och sidan validerade...

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

## #29 — lillebror, 2006-01-11T21:06Z

> **tanten skrev:**
>
> Tog bort cellspacing och cellpadding i table och la till en \</div\>

Ska jag använda padding i CSS istället för i \<table\>-elementet?

Jag la dit en \</div\> efter footern och då försvann den.

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

## #30 — lillebror, 2006-01-11T21:13Z

Äntligen validerar den! Tack allihopa för hjälpen!  :)

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

## #31 — Mozfan, 2006-01-12T22:12Z

> **lillebror skrev:**
>
> Äntligen validerar den! Tack allihopa för hjälpen!  :)

Nja, inte riktigt ;) Nu har du två andra "illegala" tecken, som dessutom är helt vanliga och internationella bokstäver: Det är i texten "att bli &#148;varm i kläderna&#148;" där bokstaven "i" i "bli" och "e" i "kläderna" markerats som illegala tecken, alltså tecken som absolut inte ska behöva skrivas med entities.  :OO Har du petat där med Wordpad igen?   ;)

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

## #32 — lillebror, 2006-01-12T22:34Z

Jag blir smått tokig på detta :) Nu har jag varit inne i databasen via phpMyAdmin och "raderat" bokstaven och skrivit dit den på nytt på de ställena som du angav. Provade att validera sidan igen men felen är ju fortfarande kvar. Hur kan det va så? Alla de andra bokstäverna är ju helt okej?!

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

## #33 — jarvklo, 2006-01-12T22:36Z

Hmm...

Valideringsfelet på förstasidan kommer sig av de "felaktiga" citattecken som du har med i ingressen på <http://www.flygfyren.nu/showarticle.php?articleID=21> 

Läs källkoden

> att bli ”varm i kläderna” och få komma bort

 Validatorn markerar alltså felaktigt bokstäver i texten istället för de två "fnuttarna" som är orsaken till problemet ;)

Avlägset relaterat förresten (eftersom citationstecken är inblandade):  

På den sidan finns det också exempel på fler saker du bör fixa...
t.ex. bör du omvandla citattecken i alt-attribut för dina bilder 

> alt="Uppställd för start bana 09, Norrköping. - "S-HI, höger ut, klart starta!""

Cittatecknen i texten bör omvandlas till &quote; så att de inte avbryter värdet på fel ställe...

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

## #34 — lillebror, 2006-01-12T22:42Z

Jag börjar inse att det måste till en sådan funktion eftersom validatorn anmärker på det hela tiden.

Är det så kallade HTML-entiteter jag skall konvertera? 

Fick tips på i PHP-forumet om att använda följande funktion:

```
$str = mb_convert_encoding($str, 'windows-1252', 'iso-8859-1');
```

Tar den hand om detta och ersätter alla tecken som jag nu får anmärkningar till tecken som följer formen "&quote;" osv?

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

## #35 — jarvklo, 2006-01-12T22:52Z

Hmm...

mb_convert_encoding tar parametrarna "Sträng, Tillkodning, Frånkodning, så den där blir nog inte helt rätt som den står (om jag inte är ute och cyklar)...

Vad händer om du testar 

```php
$str=htmlentities(mb_convert_encoding($win1252str,"ISO-8859-1","Windows-1252"));
```

htmlentities omvandlar ju t.ex. " till &quote;...

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

## #36 — lillebror, 2006-01-12T23:06Z

Modifierade ovanstående funktion till:

```php
stripslashes(trim(htmlentities(mb_convert_encoding($_POST['articlesubject'],"ISO-8859-1","Windows-1252"))));
```

Jag la till striplashes (det ska jag väl göra?) och trim.

Nu får jag en output som ser ut så här när jag lagrat det i databasen:

**&quot;Test&quot;**

Input var så här:

**"Test"**

Tolkar detta som att det fungerar att omvanlda dessa lustiga tecken?!

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

## #37 — lillebror, 2006-01-12T23:12Z

Denna sida hittade jag som konverterar vanliga tecken till rätt "html"-tecken. 

<http://www.foxinternet.co.uk/bloggerkeyboard.html>

Det funkar va?

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

---

Tråden på webben: https://www.webforum.nu/amne/html-css/140649-korrekt-åtgärd-för-non-sgml-character-number/page2  
Föregående sida: https://www.webforum.nu/amne/html-css/140649-korrekt-åtgärd-för-non-sgml-character-number.md
