WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Databas med MySQL, men med ISO som output? (https://www.wn.se/forum/showthread.php?t=33879)

Lindahl 2008-12-10 17:57

Har MySQL-databas med UTF-8 som teckenkodning. Hela webbplatsen är i UTF-8, så det funkar finfint, men nu är det så att jag behöver kunna generera en produktfeed från webbshopen, och denna ska levereras med ISO-8859-1. Tydligen klarar inte den andra parten av att avkoda en UTF-8-fil.

Klassisk asp är det som gäller. Förslag på hur lösa?

Har testat följande, men den tar bara bort alla "fula" tecken istället för att byta ut dem mot de rätta.
Kod:

s = Replace(s,"Ã¥","å")
Edit: i rubriken för tråden skulle det ju förstås stå att det är UTF-8 som gäller i databasen, men det går inte ändra nu... Men det står åtminstone i första raden i inlägget nu.

eg0master 2008-12-10 19:07

Har du testat Google med orden VB UTF8 ISO8859? Till exempel den här träffen? :rolleyes:

Lindahl 2008-12-10 19:29

Kräver ju iofs att man har en komponent installerad på servern... Annars var tanken god.

crazzy 2008-12-10 20:46

Finns det ingen motsvarighet till php's utf8_decode()?

Edit: Kan ingen asp men kan inte detta vara något? http://www.example-code.com/asp/asp-charse...rt-tutorial.asp

Magnus_A 2008-12-10 20:53

select convert(utf8_kolumn using latin1)

martine 2008-12-11 10:18

MySQL:s konverteringsfunktioner (som Magnus_A nämnde) är vida överlägsna de inbyddga funktionerna i de flesta skriptspråk och är enklare att implementera. Låt MySQL göra det det är bra på.

Borde för övrigt även fungera att SET NAMES latin1 istället för att konvertera varje fält i tabellen.

Magnus_A 2008-12-11 11:58

Citat:

Originally posted by martine@Dec 11 2008, 11:18

...
Borde för övrigt även fungera att SET NAMES latin1 istället för att konvertera varje fält i tabellen.

Smart, då är det bara att skicka en extra sträng till mysql istället för att skriva om hela frågan.

Lindahl 2008-12-11 17:27

Detta tycker jag också verkar vara en väldigt bra lösning. Problemet är att jag inte får den att funka...

När jag kör "set names latin1" precis raden före jag kör min select så spottar den fortfarande ur sig utf8. Testade även samma kommandon i MySQL-Front som jag använder som editor, samma sak där, ingenting händer. Dock inga felmeddelanden.

Magnus_A 2008-12-11 21:33

Och vad händer om du sänder set names utf8?
Kolla upp hur anslutningen ser ut, finns risk att du kört in utf8 i en tabell med names satt till latin1, då är du lika illa ute som jag var.. du kan köra in och ut och få tillbaka det du lade in men aldrig använda dig av mysqls inbyggda funktioner för kodning.

Lindahl 2008-12-11 22:24

Alla tabeller är satta med utf8, dubbelkollade nu. Fast om det var fel borde jag väl få problem på hemsidan i övrigt? Är noga att på varje html-sida lägga med charset både i headern och i meta-taggen, så jag är ganska säker på att all data i databasen har rätt teckenkodning eftersom den visas korrekt.

Backup-plan: Webhotellet stöder php och asp.net, testade php nu och använde utf8_decode-funktionen, men den ersätter bara med frågetecken... Det går inte så bra för mig...


Alla tider är GMT +2. Klockan är nu 00:47.

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