webForumDet fria alternativet

ISO-8859-1 > Konvertera till uft8 > ASP och MySql

ASP

6 svar · 1 624 visningar · startad av saturday

Medlem sedan jan. 2007133 inlägg
Frågan#1

Hej!

Jag har ett problem jag inte lyckas lösa:
När jag började en ganska stor webbplats gjorde jag misstaget att inte bry mig om character set, trodde att allt var utf8. Så visade sig fallet inte vara. Alla sidor har sparats i ISO-8859-1 och även definierats så via meta taggen.

Nu ska jag konvertera allt till utf-8. Så jag har öppnat alla asp dokument, sparat dem i utf-8 och även ändrat character set till utf-8. So far so good.

Nu hämtar jag ut MYCKET data ur en MySql databas som jag administrerar via PhpMyAdmin. Även där har jag även ställt om allt till utf8_general_ci nu.

Men nu kommer problemet. När jag gjort detta kommer alla åäö samt annorlunda tecken upp som "?" när jag skriver ut datan på hemsidan. Trots att allt borde vara och ha konverterats till utf8 (Tycker jag).

Jag har konstaterat att fast att jag ställt om alla tabeller i databasen till utf8 samt alla asp dokument så är all text/tecken, som sparats in fortfarande i ISO-8859-1 då den från början sparats ned så... Dvs, den texten som sparats in i det formatet ändras inte trots konverteringen via PhpMyAdmin till ut8_general_ci. Om jag däremot redigerar texten från administrationssidan och sparar ned den så blir texten rätt, dvs om jag byter ut ett "?" mot exempelvis "ä" och uppdaterar.

Så kort och gott verkar det som att MySql tabellen är i utf8, men att den inte konverterar den gamla texten som redan finns i tabellen till utf8.

Frågan är, hur konverterar jag om all text utan att behöva redigera om all text och spara om varje post, då det är tusentals poster som jag annars måste gå in och byta alla "?" i och uppdatera? Finns det någon sql sträng jag kan köra som konverterar om den faktiska texten i alla poster, eller finns det någon asp kod som kan konvertera när den hämtar upp upp texten?

Har bla prövat att köra denna:

ALTER TABLE tablename MODIFY colname MEDIUMTEXT CHARACTER SET utf8;

Men den gjorde inte jobbet. Och har prövat att ställa in utf8 på diverse sätt i ASP, men utan att lyckas då textformateringen på datan fortfarande är ISO-8859-1 när den kommer upp.

Ett bra tips här hade varit grymt!

Ps. vet inte om detta ska vara under ASP eller under MySql tråden. Det beror väl lite på hur den eventuella lösningen blir.

Tack på förhand! :)

Medlem sedan aug. 20068 090 inlägg
#2

Hade liknande problem för nåt år sen. Löste det genom att:

1. Exportera databasen. Sparade den lokalt i ett utf-8 dokument. Använde en textredigerare som heter TextWrangler (lillebror till BBEdit för Mac OS X) och gjorde en search-and-replace med alla svenska tecken.

2. Raderade webbplatsens databas och skapade en ny med samma namn/lösen, men i utf-8 general.

3. Importerade databasen jag hade ändrat lokalt.

Medlem sedan juni 20019 519 inlägg
#3

har du satt:

Response.CodePage = 65001
Response.CharSet = "UTF-8"

i dina ASP filer?

Medlem sedan jan. 2007133 inlägg
#4

Danne V skrev:

Hade liknande problem för nåt år sen. Löste det genom att:

1. Exportera databasen. Sparade den lokalt i ett utf-8 dokument. Använde en textredigerare som heter TextWrangler (lillebror till BBEdit för Mac OS X) och gjorde en search-and-replace med alla svenska tecken.

2. Raderade webbplatsens databas och skapade en ny med samma namn/lösen, men i utf-8 general.

3. Importerade databasen jag hade ändrat lokalt.

Har prövat att backa up hela databasen som sql, öppnat den med en textredigerare (Notepad) och sökt efter ISO, men allt i databasen stod på UTF-8 så jag såg ingen anledning att importera den.

Medlem sedan jan. 2007133 inlägg
#5

Danne V skrev:

Hade liknande problem för nåt år sen. Löste det genom att:

1. Exportera databasen. Sparade den lokalt i ett utf-8 dokument. Använde en textredigerare som heter TextWrangler (lillebror till BBEdit för Mac OS X) och gjorde en search-and-replace med alla svenska tecken.

2. Raderade webbplatsens databas och skapade en ny med samma namn/lösen, men i utf-8 general.

3. Importerade databasen jag hade ändrat lokalt.

voigtann1 skrev:

har du satt:

Response.CodePage = 65001
Response.CharSet = "UTF-8"

i dina ASP filer?

Japp prövat, men vad som händer då är att all "hårdkodad text" får "?" på konstiga tecken i stället.

Exempel: http://www.gamestop.se/gametest.asp?id=857

Det som står under beskrivning är från MySql. Det som inte har korrekta tecken är skrivet direkt i asp-dokumentet...

Medlem sedan juni 20019 519 inlägg
#6

saturday skrev:

Japp prövat, men vad som händer då är att all "hårdkodad text" får "?" på konstiga tecken i stället.

Låter konstigt om du har ändrat dina ASP filer till UTF-8 och satt det i din ASP kod också så borde i alla fall de hårdkodade tecken bli rätt.

Medlem sedan jan. 2007133 inlägg
#7

voigtann1 skrev:

Låter konstigt om du har ändrat dina ASP filer till UTF-8 och satt det i din ASP kod också så borde i alla fall de hårdkodade tecken bli rätt.

Du har rätt. Det är så himla puckat. Fast att jag ställt in utf-8 på dokumentet i Dreamweaver och sparat visar det sig att när jag öppnar dokumentet med en textredigerare så är dokumentet ändå inställt på Västerländsk encoding... Tröttsamt!

Får öppna upp samtliga dokument i textredigeraren och spara om. Jaja, inge kul, men men, så är nog lösningen.

Tack!

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