Avatar billede mema Nybegynder
16. august 2010 - 20:35 Der er 8 kommentarer og
1 løsning

Find og erstat æ-ø-å i tabelkollone

Hej - Jeg har en asp.net 2 formular der bruger FCKeditor på tekst felterne. Data i disse felter uploades til en Mssql 2005 database. Bagefter vises disse data i en formular som præsentation og de kan også søges i en anden formular (UserControl).

FCKeditor laver om på æ, Æ, ø, Ø, å og Å når den uploader. Den sender:
æ i stedet for lille æ, ø i stedet for lille ø og å i stedet for lille å.... Jeg har forsøgt meget at finde på FCKeditor hjemmeside og på google, hvordan kan man lave om på det, men har ikke fundet nogen løsning.

Nu har jeg skrevet en SP, der skulle lave om på dem, efter at data er sendt til databasen. Den ser sådan ud (koden her gælder kun en kollone, men de andre kolloner opdateres på samme måde:
----

ALTER PROCEDURE [dbo].[FindErstat]
AS
-- FindErstat æ på drift kollone
BEGIN
UPDATE kom10 SET drift = REPLACE(drift,'æ','æ')
END
-- FindErstat Æ på drift kollone
BEGIN
UPDATE kom10 SET drift = REPLACE(drift,'Æ','Æ')
END
-- FindErstat ø på drift kollone
BEGIN
UPDATE kom10 SET drift = REPLACE(drift,'ø','ø')
END
-- FindErstat Ø på drift kollone
BEGIN
UPDATE kom10 SET drift = REPLACE(drift,'Ø','Ø')
END
-- FindErstat å på drift kollone
BEGIN
UPDATE kom10 SET drift = REPLACE(drift,'å','å')
END
-- FindErstat Å på drift kollone
BEGIN
UPDATE kom10 SET drift = REPLACE(drift,'Å','å')
END
----
Denne SP laver også om på æ... osv. men det skelner ikke mellem lille og store bogstaver og finder og erstatter alt med lille æ, ø, og å. Det vil sige den er Case-insensitive. Fx den erstatter både å og Å med lille å.

Jeg håber, at nogen kan hjælpe mig ved dette problem. Tak på forhånd.
Avatar billede keysersoze Guru
16. august 2010 - 21:02 #1
Det lyder enten som om at du har et problem med din encoding eller at du ikke har sat fckeditor korrekt op; http://docs.cksource.com/FCKeditor_2.x/Developers_Guide/Configuration/Configuration_Options/ProcessHTMLEntities
Avatar billede Syska Mester
16. august 2010 - 21:30 #2
Ja.

Men husk altid at encode det igen ...

Du kan eventuelt bruge:
http://msdn.microsoft.com/en-us/library/7c5fyk1k.aspx

Den burde også klare tricket med at decode/encode dit html.
Avatar billede mema Nybegynder
17. august 2010 - 10:28 #3
tak keysersoze. Det virker i hvert fald fint. Jeg har sat i fckconfig filen følgend:
FCKConfig.IncludeLatinEntities    = false ;
FCKConfig.IncludeGreekEntities    = false ;
og nu uploader æ,ø,å osv. når man uploader. Du må gerne sende et svar.

Men jeg har også et andet problem og derfor har jeg skrevet til Mssql delen.

Søgefunktionen, som virker hvis fckeditor uploader rigtig æ, ø.... er tilføjet webstedet 2 år efter oprindelige løsning, og nu alle data i produktion, som er tilføjet databasen i de sidste 2 år skal opdateres med rigtige æ, Æ, ø..... Hvordan??? som jeg har skrevet i mit spørgsmål opdaterer min stored procedure alle danske specialbogstaver case-insensitiv (lille bogstaver) og det har fatale virkning på præsentationsdelen....
Avatar billede keysersoze Guru
17. august 2010 - 19:21 #4
Hvis din kode virker så burde du kunne fyre en sql a la dette afsted på hele tabellen;

UPDATE kom10 SET drift = REPLACE(REPLACE(drift,'å','å'),'ø','ø')
Avatar billede mema Nybegynder
17. august 2010 - 20:02 #5
Ja, men hvad med at den skelner ikke mellem store og lille bogstaverne? å og Å bliver både til lille å?
Avatar billede keysersoze Guru
18. august 2010 - 01:07 #6
gælder det kun å eller alle?
Avatar billede mema Nybegynder
18. august 2010 - 12:21 #7
Det gælder alle danske specialbogstaver: æ, ø og å.
Avatar billede keysersoze Guru
18. august 2010 - 18:26 #8
Så må det næsten skyldes at du kører med en case-insensitive collation - hvis du fortsat vil køre med det må du specifikt angive det i din SQL, fx;

replace(drift COLLATE SQL_Latin1_General_CP1_CS_AS, '&aring', 'å')
Avatar billede mema Nybegynder
18. august 2010 - 22:17 #9
Det virker fint nu. Mange tak.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester