webForumDet fria alternativet

Teckenkodningsproblem

Webbutveckling

25 svar · 1 530 visningar · startad av J.N. · sida 2 av 2

Frågan, av J.N.

HEJ! Jag har problem med baltiska tecken som visas korrekt på en webbsida med "Baltiska (Windows)" som teckenkodning, men som i Access-databasen ligger med "fel" tecken. Se bifogade filer. Tecken är inlagda med rätt tecken, dvs Access har själv bytt tecken. Databasen är sorterad enligt svensk/finsk, om det har någon betydelse. Testade med andra, men det blev samma sak. Webbsidan har inte charset

Läs frågan i sin helhet →
Medlem sedan feb. 20034 441 inlägg
#21

Märkligt...
Nu sparade jag alla filer som tillhör sidan som UTF-8 och då blev det jättekonstigt.
Alla fraser som finns i XML-språkfilerna blir plöstligt fel när det gäller alla å, ä & ö.
Såhär ser det ut:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="sv" lang="sv">

<head>

	<title>MTE Engineering - Admin.</title>

	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<meta http-equiv="Content-Language" content="sv" />

	<meta name="owner" lang="sv" content="Marco Alsterfalk, mte.se" />
	<meta name="copyright" lang="sv" content="&copy; 2005 MTE, Marco Alsterfalk" />

	<link rel="stylesheet" href="../css/adm_css.css" type="text/css" />
</head>
<body class="adm_content">

<div class="fivehundred">
	<h3 class="helper_head">Hantera nyheter - [b]Lägg[/b] till</h3>
	<div class="helper_box">

		<p>[b]Lägg[/b] till en nyhet genom att ange rubrik och text. Du kan även ladda upp en bild med din nyhet. Formatet [b]på[/b] bilden [b]beskärs[/b] automatiskt [b]för[/b] att passa in i sidan.</p>
	</div>
</div>

Hur kan det här komma sig?

Medlem sedan feb. 20041 816 inlägg
#22

Hur gör du när du sparar om filerna med encoding och allt?

Det blir strul om du bara trycker "Save as..." och sedan väljer den encoding du vill ha. Då görs det ett försök att konvertera innehållet till den encoding du angav, och det är inte något en texteditor eller IDE klarar av.

Jag brukar göra som så att jag först kopierar innehållet(ctrl+a) till en ny, helt tom textfil och klistrar in innehållet. Spara inte denna fil. Därefter går jag tillbaks till originalfilen och tömmer den på allt innehåll(del) som fortfarande är markerat. Sedan sparar jag om filen med den encoding jag vill ha, går till den tillfälliga icke-sparade textfilen, kopierar över dess innehåll(ctrl+a) och sparar sedan originalfilen.

Nu vet jag inte om detta är till någon hjälp eller ej. Hoppas det kan vara till någon hjälp ivf, annars är det bara att vänta tills zcorpan kommer förbi igen. :bire

Medlem sedan dec. 20042 245 inlägg
#23

Om jag kikar på Palles checklista verkar det som att ASP behöver en Response.CodePage = 65001 för att det ska fungera korrekt som utf-8...

Medlem sedan feb. 20034 441 inlägg
#24

zcorpan skrev:

Om jag kikar på Palles checklista verkar det som att ASP behöver en Response.CodePage = 65001 för att det ska fungera korrekt som utf-8...

Nu har jag följt checklistan och ovan allt stämmer enligt min kod.
Det här Response.CodePage resp. Response.Charset, ska det läggas till på alla undersidor eller räcker det med att lägga det i en funcsfil som redan inkluderas överallt?

Har nämligen provat att lägga det överallt, men det blir ingen skillnad alls.
Kan det ha med MySQL att göra?

Bör tillägga att databasen är från början en Access 2K databas som jag "kopierat" med MySQL Migration Kit.

Kan det ställa till det på något sätt?
I migreringen har jag anget att charset ska vara UTF-8/Multilanguage och tabellerna är i formatet "utf8_general_ci" så det här borde väl fungera?

Alla tips är välkomna, tack!

Medlem sedan feb. 20034 441 inlägg
#25

Hej igen
Är det någon som kan hjälpa mig med det här?

Jag måste verkligen lösa problemet, som jag knappt förstår mig på.
Vissa delar av min sida visar alla tecken korrekt, vilket är konstigt.

Misstänker att det beror på databasen (MySQL) eftersom det som är rätt hämtas från en tabell och det som är "fel" hämtas från en annan.

Jag följer Palles checklista, skillnaden är att jag kör MySQL och han MS-SQL.
Datatypen är LONGTEXT och "utf8_general_ci" är satt på alla kolumner.

Det som är konstigt är att det fungerar ibland.

Förstår ingenting av det här, men måste lösa det.

Jag betalar gärna pengar till den som jag hjälpa mig med det här, eftersom jag är i akut behov av hjälp.

Tack på förhand!

Medlem sedan feb. 20034 441 inlägg
#26

Nu har jag testat en del saker och är nära en lösning.
Det är därimot något mycket, mycket konstigt som händer i samband med att jag uppdaterar texterna på hemsidan.

Det tar drygt två minuter innan texten visas korrekt.
Jag matar in text genom ett admingränsnitt.

Innan texten skickas till MySQL, kör jag följande: (läste på ett forum att det är såhär man ska göra...)

oConn.Execute("SET NAMES 'utf8'")
oConn.Execute("SET CHARACTER SET 'utf8'")
oConn.Execute(sSql)

Jag matade senast in text klockan 10:13.
När jag uppdaterade sidan direkt efter, var åäö utbytt mot konstiga tecken.
Jag väntade tills klockan var 10:14, fortfarande samma sak.

När jag därimot uppdaterade nyss, klockan var då 10:16, då funkade allt igen, alla tecken visas korrekt.
Går jag till admin igen och laddar in texten, visas åäö rätt, när jag fyller på med text eller byter ut den befintliga, blir det fel igen, men väntar jag 2-3 minuter, ser allt schysst ut.

Vad beror det här på?

253 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)