WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Problem med Å Ä Ö (https://www.wn.se/forum/showthread.php?t=11079)

Federico 2005-11-28 22:38

Håller på och flyttar en site från en server(2k) till en annan (2k3).
Efter flytt och export/import av data så blir alltså å ä ö till UTF8-kodade tecken.
Fattar inte varför detta händer.
W2k3 Server, SQLServer2k.

Samma Collation name, samma kod (ASP).

Testat import/export via Accessdatabas, samt backup från gamla som återställts på nya.

Kan för mitt liv inte hitta någon skillnad i config eller något annat som rättar till felet.

Någon som har nåt stalltips? Måste hänt andra, en sökning på skräp-tecken ger tom hits hos Microsoft med sidor som visar exakt samma symptom.
htt p://www.microsoft.com/sverige/technet/mail/TechNetFlash_050427.html

TeleJack 2005-11-30 12:19

Är det i själva databasen det blir fel? eller får du de tecknen när du skriver ut data från databasen i ASP...?

TeleJack 2005-11-30 12:37


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


Påbörja ALLA asp-filer som ovan så tror jag det löser sig. De tre skräptecknen i början säger till IIS att hantera all databas-text som UTF-8.

Federico 2005-11-30 19:03

Tack för svaret.
Gav dock ingen effekt i detta fallet, testade på default.asp.

Tar dock tacksamt emot fler svar.

Vill också förtydliga att siten alltså fungerar precis som den ska på en annan server, w2kas. Båda med sqlserver2k som backend.

Federico 2005-11-30 19:39

Var för snabb att svara, det gav effekt.

Det fick till ÅÄÖ där de såg fel ut förut, men messade upp min formattering, och bytte ut Ö där de förut fungerat, skrivet direkt i sidan, till "?".

Jag blir mer och mer säker på att detta är ett problem med SQLServer, och inte ett problem med HTML-delarna. Koden har som sagt fungerat felfritt på annan server.

TeleJack 2005-11-30 20:42

med mitt sätt så måste du se till att all inskriven text i html-koden är gjord med &åring; och så vidare.. alltså du kan inte skriva åäö som vanligt i vanlig text om du ställt in UTF-8 som jag gjorde i mitt asp-exempel.. kan dock rekommendera att du använder UTF-8 som jag gjorde för det minskar problem med kompabilitet mellan webbläsare..

karlgren 2005-11-30 20:52

Utf-8 körde ihop sig för mig också ett tag.
Lade dock in nedanstående iso på sidan istället.

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

Löste problemen.

Federico 2005-12-01 11:04

TeleJack: Det är inga problem, det som bekymrar mig mer är att formatteringen blev lidande. Kanske något som går att lösa iofs, men jag är hyffsat säker på att grundproblemet ligger i SQLServer eller IIS, förmodligen den tidigare.
Tackar dock för tipset och ska spinna vidare på det.

karlgren:
Det har jag redan, eller 4.01-motsvarigheten som inte är terminerad.

Poängen är alltså att siten fungerar fint på annan server, och har så gjort länge.
Enda skillnaden är 2k->sk3 server. Vilket _för mig_ tyder på en felconfig någon stans.

TeleJack 2005-12-01 12:01

förstår inte riktigt vad du menar med formatteringen...?

om du ger upp min lösning så:
ett annat tips kan vara att kolla vilket språk du valt på din databas i sql-server...
jag har SQL_SwedishStd_Pref_CP1_CI_AS

Tror dock inte du kan byta språket på databasen hur som helst utan måste skapa en ny och importera in dina data till den nya...

zoran 2005-12-01 13:07

Citat:

Originally posted by TeleJack@Nov 30 2005, 13:37
De tre skräptecknen i början säger till IIS att hantera all databas-text som UTF-8.
Nej det gör de inte. Det är BOM (Byte Order Mark) som "kan" användas i UTF-8 kodade filer. Att sen IIS får för sig att endast då göra "set names utf8; set results utf8"- (eller motsvarande för servern som körs), är ju en bug. UTF-8 filer finns utan BOM.

Men, å andra sidan, sånt ska man styra i sin applikation.


TeleJack:
Språk är en sak, character encoding en annan. Du kan ha Svenska och kodning iso-8859-1 eller utf-8.

När man för över databasen ska man veta två saker: character encoding på källdatabasen, character encoding man tänkt sig eller har i destinationsdatabasen.

Efter det är det bara att hålla tungan rätt i mun och göra rätt konverteringar.

I linux har man iconv, exempelvis om man har databas som är latin1 och ska in i utf så kan man göra mysqldump db | iconv --to-code=UTF-8 | mysql destdb


Alla tider är GMT +2. Klockan är nu 07:33.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson