webForumDet fria alternativet

Hur får jag alla mina websidor att vis ÅÄÖ?

HTML & CSS

14 svar · 1 398 visningar · startad av Mattias Nordin

Medlem sedan dec. 20051 056 inlägg
Frågan#1

Hej,

Tänkte att jag skulle lära mig hur det här med UTF-8 fungerar igentligen. Problemet jag har är att vissa sidor på en ny website visar ÅÄÖ olika. Hur kan jag tvinga alla sidor på siten att visa samma?

Jag har hittat några intressanta trådar men har inte fått det att fungera på min webserver.

För det första, är det något som är felkonfigurerat på min webserver?

Jag använder följande header på samtliga sidor:

<%@ LCID=1053%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
	<title>Barrel Race aktiviteter i Sverige</title>
	<LINK href="/_design.css" rel="stylesheet" type="text/css">
</head>
<body>

:stud

Medlem sedan mars 2004455 inlägg
#2

Prova att spara alla dina filer som utf-8. Ett vanligt fel många gör är att helt enkelt glömma bort att spara filen/filerna som utf-8 och ibland så behöver det inte vara användarens fel heller då vissa editorer envisas att sätta någon annan teckenkodning.

Medlem sedan dec. 20051 056 inlägg
#3

Hur väljer man vilket format man vill spara filen i då?
Jag använder mig vanligtvis av Dreamweaver CS4.

En annan underlighet är att på en sida så visas ÅÄÖ korrekt förutom på de ställen där jag hämtar informationen från en databas.

?

Medlem sedan aug. 20068 090 inlägg
#4

Mattias Nordin skrev:

Hur väljer man vilket format man vill spara filen i då?
Jag använder mig vanligtvis av Dreamweaver CS4.

En annan underlighet är att på en sida så visas ÅÄÖ korrekt förutom på de ställen där jag hämtar informationen från en databas.

?

Skapa ett nytt dok i DW. När rutan med olika options för filen dyker upp, se till att det står utf-8 som char-set. Spara dokumentet med nåt tillfälligt namn.

Öppna det felande dokumentet (i code view). Kopiera ALLT och stäng det. Klistra in i dokumentet du nyss skapade. Spara det över det felande.

Medlem sedan juni 20034 013 inlägg
#5

Mattias Nordin skrev:

En annan underlighet är att på en sida så visas ÅÄÖ korrekt förutom på de ställen där jag hämtar informationen från en databas.

Mysql? Kör queryn SET NAMES 'utf8' innan du hämtar information.

Medlem sedan dec. 20051 056 inlägg
#6

Nu fungerar det mesta. Mystiskt är dock att funktionen WeekDayName inte returnerar ÅÄÖ men allt annat på sidan gör det?!

 varDateText = WeekdayName(WeekDay(varInputDate)) &" " &varHour &":" &varMinute

Resultat:

m�ndag 10:17

Kör som sagt följande på sidan:

<%@ LCID=1053%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

Blir gravt förvirrad över det här. Tar jag bort UTF-8 taggen så flyttar problemet på sig men det förblir hela tiden några tecken på sidorna som inte tolkas rätt.

Medlem sedan juni 20034 013 inlägg
#7

Mattias Nordin skrev:

Nu fungerar det mesta. Mystiskt är dock att funktionen WeekDayName inte returnerar ÅÄÖ men allt annat på sidan gör det?!

Det är inte så mystiskt. Det betyder att den ASP-version du använder inte kör med UTF-8. Jag vet inte om det går att ställa in någonstans, men alternativet annars är att konvertera svaret från WeekDayName till UTF-8.

Medlem sedan dec. 20051 056 inlägg
#8

Hur ställer man in ASP versionen som används då? Jag har en egen IIS webserver och ingen av mina andra websiter på servern har detta problem.

Tacksam för hjälpen.

Medlem sedan juni 20034 013 inlägg
#9

Prova i början på ditt skript:

<% Response.Charset = "UTF-8" %>

Medlem sedan dec. 20051 056 inlägg
#10

Hmmm... Det där trodde jag skulle hjälpa, men det gör det inte.

Följande sida tyder på att det ska gå att konfigurera IIS men jag hittar inte en meny för att göra det.

http://www.w3.org/International/O-HTTP-charset

En av sidorna som krånglar är: http://barrelrace.se/start_se.asp (se forum listan).

Kan det vara något annat fel jag gör?

Medlem sedan dec. 20051 056 inlägg
#11

Parameters:
URL = http://www.barrelrace.se/start_se.asp
UAG = Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; OfficeLiveConnector.1.3; OfficeLivePatch.0.0)
AEN =
REQ = GET ; VER = 1.1 ; FMT = AUTO
Sending request:
GET /start_se.asp HTTP/1.1
Host: https://www.barrelrace.se
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; OfficeLiveConnector.1.3; OfficeLivePatch.0.0)
Connection: close

• Finding host IP address...
• Host IP address = 193.58.238.244
• Finding TCP protocol...
• Binding to local socket...
• Connecting to host...
• Sending request...
• Waiting for response...

Receiving Header:
HTTP/1.1·200·OK(CR)(LF)
Connection:·close(CR)(LF)
Date:·Sun,·05·Apr·2009·14:23:13·GMT(CR)(LF)
Server:·Microsoft-IIS/6.0(CR)(LF)
X-Powered-By:·ASP.NET(CR)(LF)
Content-Length:·16443(CR)(LF)
Content-Type:·text/html;·Charset=UTF-8(CR)(LF)
Set-Cookie:·ASPSESSIONIDAQSQQDBA=HAACLMFAGEOCKLBNNEEKPEJB;·path=/(CR)(LF)
Cache-control:·private(CR)(LF)
(CR)(LF)

Är inte med i matchen. Enligt den här loggfilen returnerar ju sidan rätt charset. Men trots det fungerar inte vbscript funktionen. Den gör det på andra ställen på samma webserver :/

Medlem sedan mars 20041 505 inlägg
#12

Du måste ange CodePage 65001 som talar om att UTF-8 ska användas i funktioner, objekt etc.

http://www.asp-dev.com/main.asp?page=96

Minns inte riktigt, men smidigast tror jag är Session.CodePage som påverkar hela siten, förutsatt att Session används:

Session.CodePage = 65001

Annars kan du ange det längst upp i varje ASP-fil:

<%@ CodePage=65001 Language="VBScript"%>

Om man har behöriget att confa IIS så kan tydligen sätta ett default-värde:
http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/f7a36022-0649-42dc-aa2f-66d356d26594.mspx?mfr=true

För att förtydliga ytterligare:
Response.Charset sätter bara en HTTP-header med charset.
LCID är irrelevant här eftersom det bara påverkar nationella saker som datum, tid, valuta etc.

Hoppas det löser sig :)

Medlem sedan dec. 20051 056 inlägg
#13

Troxy is king. Det där löser problemet!

Förutom på sidor som redan är sparade i fel format men det är bara att gå in i mitt forum och ändra alla felaktiga tecken så ordnar det sig.

Kanon. Tack!

Medlem sedan dec. 20051 056 inlägg
#14

Återöppnar denna tråd igen. Då jag stöter på ytterligare patrull.
Jag har ett ikluderat forum på den här websiten och denna har så många sidor så att det inte är realistiskt att lägga till den där taggen på alla sidor. Grundproblemet måste lösas.

Jag har en annan tråd om forumdelen här: http://forums.webwizguide.com/topic27227_post139348.html#139348

Det som jag antar kvarstår är att konfigurera om webservern? För det är väl den som gör fel när vbscript funktionen nedan inte returnerar rätt tecken?

Mattias Nordin skrev:

 varDateText = WeekdayName(WeekDay(varInputDate)) &" " &varHour &":" &varMinute

Resultat:

m�ndag 10:17

Medlem sedan mars 20041 505 inlägg
#15

Mattias Nordin skrev:

Grundproblemet måste lösas.
[...]
Det som jag antar kvarstår är att konfigurera om webservern? För det är väl den som gör fel när vbscript funktionen nedan inte returnerar rätt tecken?

Japp, du kan tydligen ändra AspCodepage Metabase Property.
Men jag vet inte hur och var man gör det :p

268 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)