02. september 2006 - 20:24Der er
27 kommentarer og 1 løsning
FCKeditor system, brug for hjælp til at få bogstaver til at blive
Hej!
Jeg har et problem, jeg bruger FCKeditor til min side, men problemet ligger i at når jeg skriver "Å, Æ eller Ø som overskrift, sletter den det. Kan nogen fortælle mig hvad jeg skal tilføje? Eller ændre i koden nedenunder.
Her er koden til siden jeg bruger for at loade det frem!
<html> <head>
<meta http-equiv='content-type' content='text/html; charset=iso-8859-1' /> <title>Untitled</title> <!-- #INCLUDE file="fckeditor/fckeditor.asp" --> </head> <body> <% Dim oFCKeditor Set oFCKeditor = New FCKeditor oFCKeditor.BasePath = "FCKeditor/" oFCKeditor.Config("SkinPath") = "skins/office2003/" oFCKeditor.Value = content oFCKeditor.Config("AutoDetectLanguage") = False body = body & oFCKeditor.Create("FCKeditor1") Response.write body Response.write "Låne" %> Håne </body> </html>
Grunden til jeg har skrevet "låne" og håne nedenunder. Er fordi Response.write "Låne" bliver vist som "Lne" og Håne som er udenfor ASP koden bliver vist som "Håne"..
Det som sker er, at den udmærket klarer at skrive Håne, da det er skrevet direkte i HTML koden, så den forstår altså godt tegnsætningen for hele HTML-siden. Men det som ASP-koden, vha. Responde.write, skal skrive kan den ikke! Men vel at mærke kun når FCKeditor.asp er inkluderet. Kopieres editoren ud, så kan den godt skrive det, også vha. ASP. Så det må være en indstilling der sættes i REsponse objektet, eller i ASP-koden generelt, som FCKeditoren laver? Nogle ideer?
Jeps, når du udskriver direkte vises teksten bare.
Men når smider det ind i fck´s parameter bliver teksten parset ind i javascript koden. Den får sig så en omgang behandling af mange af de kerner der findes i systemet og bliver spyttet ud igen.
Når du eksempelvis skriver en tekst i fck editor findes der en onKeyUp event, der analyserer tegnet du har indtastet og omdanner det til utf-8 standard. Altså bliver et Æ omdannet til Æ
Så enten skal du omdanne danske tegn til utf-8 standard ellers skal du tilføje den her fine lille attribut.
Tak for dit svar! En lille tilføjelse. Teksten "låne" i eksemplet foroven vises ikke I FCKeditorens rediger-felt - men nedenfor! Dvs. den parses ikke gennem FCKeditorens Javascripts og maskineri (sådan som jeg har forstået det)! Jeg fik et råd et andet sted om at erstatte samtlige steder i FCKeditorens kode, hvor der stod "utf-8" med "iso-8859-1". Det førte til mange hundrede steder i koden hvor det forekom. JEg erstattede det så med et tool - simple Search Replace - der er gratis! MEn ligelidt hjalp det.
At ændre content type til utf-8 eller indsætte din linje foroven: <meta content="text/html; charset=utf-8" http-equiv="Content-Type" /> hjælper ligelidt.
Hvis du nu kigger på det link du selv har lavet er det lænset for alle standarder inden for moderne html. Standarder som fck editor blandt andet bygger på.
Jeg har nu downloadet fckeditor, indsat rå æ ø og å ´er og jeg fik javascript fejl.
Frederico har lavet en udemærket eksempel side, prøv at parse din tekst ind i den.
Og husk nu, teksten skal være konverteret.. Den vil sige, du skal erstatte æø og å med rigtige tegn.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <!-- * FCKeditor - The text editor for internet * Copyright (C) 2003-2006 Frederico Caldeira Knabben * * Licensed under the terms of the GNU Lesser General Public License: * http://www.opensource.org/licenses/lgpl-license.php * * For further information visit: * http://www.fckeditor.net/ * * "Support Open Source software. What about a donation today?" * * File Name: sample01.html * Sample page. * * File Authors: * Frederico Caldeira Knabben (fredck@fckeditor.net) --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>FCKeditor - Sample</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="robots" content="noindex, nofollow" /> <link href="../sample.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="../../fckeditor.js"></script> </head> <body> <h1> FCKeditor - JavaScript - Sample 1 </h1> <div> This sample displays a normal HTML form with an FCKeditor with full features enabled. </div> <hr /> <form action="sampleposteddata.asp" method="post" target="_blank"> <script type="text/javascript"> <!-- // Automatically calculates the editor base path based on the _samples directory. // This is usefull only for these samples. A real application should use something like this: // oFCKeditor.BasePath = '/fckeditor/' ; // '/fckeditor/' is the default value. var sBasePath = document.location.pathname.substring(0,document.location.pathname.lastIndexOf('_samples')) ;
var oFCKeditor = new FCKeditor( 'FCKeditor1' ) ; oFCKeditor.BasePath = sBasePath ; oFCKeditor.Height = 300 ; oFCKeditor.Value = 'Her har vi noget meget simpelt tekst -' ; oFCKeditor.Create() ; //--> </script> <br /> <input type="submit" value="Submit" /> </form> </body> </html>
Forstår jeg dig ret - at det jeg skal gøre når jeg henter min tekst fra databasen er, at konvertere et "æ" til aering, etc. og så indsætte det i stedet for?
Følgende eksempel giver selvfølgelig samme resultat:
<%@ CodePage=65001 Language="VBScript"%>
<!-- * FCKeditor - The text editor for internet * Copyright (C) 2003-2005 Frederico Caldeira Knabben * * Licensed under the terms of the GNU Lesser General Public License: * http://www.opensource.org/licenses/lgpl-license.php * * For further information visit: * http://www.fckeditor.net/ * * File Name: sample01.asp * Sample page. * * File Authors: * Frederico Caldeira Knabben (fredck@fckeditor.net) --> <% ' You must set "Enable Parent Paths" on your web site in order this relative include to work. %> <!-- #INCLUDE file="../../fckeditor.asp" --> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title>FCKeditor - Sample</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <meta name="robots" content="noindex, nofollow"> <link href="../sample.css" rel="stylesheet" type="text/css" /> </head> <body> <h1>FCKeditor - ASP - Sample 1</h1> This sample displays a normal HTML form with an FCKeditor with full features enabled. LÅNE <% Response.write "LÅNE" %> <hr> <form action="sampleposteddata.asp" method="post" target="_blank"> <% ' Automatically calculates the editor base path based on the _samples directory. ' This is usefull only for these samples. A real application should use something like this: ' oFCKeditor.BasePath = '/fckeditor/' ; // '/fckeditor/' is the default value. Dim sBasePath sBasePath = Request.ServerVariables("PATH_INFO") sBasePath = Left( sBasePath, InStrRev( sBasePath, "/_samples" ) )
Dim oFCKeditor Set oFCKeditor = New FCKeditor oFCKeditor.BasePath = sBasePath oFCKeditor.Value = "This is some <strong>sample text</strong>. You are using <a href=""http://www.fckeditor.net/"">FCKeditor</a>." Response.write oFCKeditor.Create("FCKeditor1") %> <br> </form> </body> </html>
Hov, jeg kan se at der er kommet underlige tegn ind i starten af dokumentet. Det kunne godt type på, at du skriver dine ting i utf-8 format. Jeg kan kun anbefale dig at skrive det i ANSI i stedet, jeg har erfaret at nogle servere har svært ved at fortolke ren utf-8..
Jeg antager du spørger til ANSI vs. utf-8. Det kommer helt an på hvilket program du bruger. Jeg bruger notepad2, dér dobbelt klikker du bare et bestemt sted, så får du den rigtige protekol frem.
Har fx lavet denne metode der skulle konvertere tegnene... Men den skriver heller ikke tegnene ud!
function convertCharacters(tekst) nytekst = "" a = "å" b = "æ" c = "ø" nytekst = Replace(tekst, "ø", c) nytekst = Replace(tekst, "æ", b) nytekst = Replace(tekst, "å", a) convertCharacters = nytekst end function
Kan man ændre formattet som bliver hentet fra databasen?
Jeg bruger HTMLkit. Forstod ikke helt din sidste pointe.
Når jeg i metoden udskriver hvor mange tegn sætningen har, jeg indsatte "Håne", så udskriver den 3. Dvs. når asp på serverside behandler teksten, så får den ikke tegnet å. Det udelades! Hvad gør man?
Sandt nok - jeg fik rettet metoden efter jeg fik posted den - men ligegyldigt hvad, så ændrer det desværre ikke på det faktum, at str ikke er på mere en 3 tegn, når den får det... ergo der kommer intet specielt tegn ind, den kan konvertere. Din metode virker sådan:
Men for søren da, din funktion derover er jo forkert, så der er da ikke noget at sige til det ikke virker. Som du skriver det løber den alle replaces igennem og tager kun den sidste.
Du skal str = str & den i stedet, fuldkommen som min funktion.. :)
Nej - du skal ikke... Jeg har jo testet din funktion og den kopierer samme ord 6 gange... Replace funktionen erstatter tegn i stringen og returnerer ordet efter replacen. Problemet er ikke funktionen - problemet er charsettet ASP bruger serverside. Er vi enige om at når funktionens str kun rummer 3 tegn, så hjælper det intet at vi erstatter et tegn der ikke er der....
Jeg har nu glæden af at sige at jeg har løst problemet endelig! Et problem der har naget mig i mange måneder.
Da FCKeditor er programmeret i UTF-8 tegnsættet, gjorde det at hver gang jeg forsøgte at skrive danske bogstaver, æøå, mens fckeditor.asp var inkluderet i hjemmesiden, så ville ASP ikke skrive teksten korrekt, den udelod ganske enkelt bogstaverne. Mange forslag er blevet givet og jeg takker for alle svar. Jeg gjorde følgende for at løse problemet:
- Jeg var tidligere blevet rÃ¥det til at ændre alle referencer i fckeditorkoden fra utf-8 til iso-8859-1, hvilket jeg gjorde ved hjælp af Simple Search Replace. Den erstattede over hundrede steder hvor det stod - men ligelidt hjalp det. - SÃ¥ i stedet skiftede jeg tilbage til UTF-8 og satte ogsÃ¥ alle mine egne sider til UTF-8, hvorefter en masse andre steder, hvor jeg havde brugt æøå, ikke blev vist korrekt. - Derefter oprettede jeg følgende to metoder til at konvertere æøå fra textfield og textarea til utf-8 standarden. Men jeg fandt at der var to mÃ¥der den skrev æøå, henholdsvist: "æ" og "æ", som jeg sÃ¥ konverterede til "æ".
Metoden ser ud som følger i ASP:
Function convertChars(str) str = Replace(str,"æ","æ") str = Replace(str,"ø","ø") str = Replace(str,"Ã¥","å") str = Replace(str,"Æ","&Aelig;") str = Replace(str,"Ø","Ø") str = Replace(str,"Ã…","Å") convertChars = str End Function
Function convertNormalChars(str) str = Replace(str,"æ","æ") str = Replace(str,"ø","ø") str = Replace(str,"Ã¥","å") str = Replace(str,"Æ","&Aelig;") str = Replace(str,"Ø","Ø") str = Replace(str,"Ã…","Å") convertNormalChars = str End Function
For hver gang en side blev redigeret i mit CMS og før det blev gemt, så konverterede jeg bogstaverne til UTF-8, hvorefter problemet er løst.
- Et enkelt sted, havde jeg også behov for at gemme referencer til filnavn, men da opdagede jeg at metode et ikke kunne bruges, men at filnavne faktisk bruger æøå. Så derfor anvende jeg metode nr to til dette.
Nu virker siden korrekt og skriver samtlige bogstaver korrekt.
Jeg har nu glæden af at sige at jeg har løst problemet endelig! Et problem der har naget mig i mange måneder.
Da FCKeditor er programmeret i UTF-8 tegnsættet, gjorde det at hver gang jeg forsøgte at skrive danske bogstaver, æøå, mens fckeditor.asp var inkluderet i hjemmesiden, så ville ASP ikke skrive teksten korrekt, den udelod ganske enkelt bogstaverne. Mange forslag er blevet givet og jeg takker for alle svar. Jeg gjorde følgende for at løse problemet:
- Jeg var tidligere blevet rådet til at ændre alle referencer i fckeditorkoden fra utf-8 til iso-8859-1, hvilket jeg gjorde ved hjælp af Simple Search Replace. Den erstattede over hundrede steder hvor det stod - men ligelidt hjalp det. - Så i stedet skiftede jeg tilbage til UTF-8 og satte også alle mine egne sider til UTF-8, hvorefter en masse andre steder, hvor jeg havde brugt æøå, ikke blev vist korrekt. - Derefter oprettede jeg følgende to metoder til at konvertere æøå fra textfield og textarea til utf-8 standarden. Men jeg fandt at der var to måder den skrev æøå, henholdsvist: "æ" og "æ", som jeg så konverterede til "æ".
Metoden ser ud som følger i ASP:
Function convertChars(str) str = Replace(str,"æ","æ") str = Replace(str,"ø","ø") str = Replace(str,"Ã¥","å") str = Replace(str,"Æ","&Aelig;") str = Replace(str,"Ø","Ø") str = Replace(str,"Ã…","Å") convertChars = str End Function
Function convertNormalChars(str) str = Replace(str,"æ","æ") str = Replace(str,"ø","ø") str = Replace(str,"å","å") str = Replace(str,"Æ","&Aelig;") str = Replace(str,"Ø","Ø") str = Replace(str,"Å","Å") convertNormalChars = str End Function
For hver gang en side blev redigeret i mit CMS og før det blev gemt, så konverterede jeg bogstaverne til UTF-8, hvorefter problemet er løst.
- Et enkelt sted, havde jeg også behov for at gemme referencer til filnavn, men da opdagede jeg at metode et ikke kunne bruges, men at filnavne faktisk bruger æøå. Så derfor anvende jeg metode nr to til dette.
Nu virker siden korrekt og skriver samtlige bogstaver korrekt.
Nej, jeg har kun én. Men grunden til de to posts er, at jeg havde den stående på UTF-8 og derfor, ironisk nok, blev tegnene forkert på min post. Hvis du tænker på at jeg svarer på en tråd jeg ikke selv har oprettet, så er det fordi min lillebror Kelvin oprettede et spørgsmål om dette problem.
Meget mindre kunne også have gjort det, men tak for point.. :)
Synes godt om
Ny brugerNybegynder
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.