Du skulle ju kunna skriva ut det såhär:
ä = ä
Ä = Ä
Ö = Ö
ö = ö
Å = Å
å = å
Lite krångligt kanske. Funkar det då?
8 svar · 2 161 visningar · startad av Snakes
Hej!
Först måste jag säga: Läs noga innan ni skriver något!
Jag använder FCKeditor och har ett litet problem när jag skriver:
Response.Write "ä"
Nu till det konstiga, När jag öppnar sidan där jag skrev write "ä" så är det tomt. Visa Källa är också tomt.
När jag skriver:
Response.Write "LäL"
Så skriver den bara ut LL
Skriver jag LäL innan <% eller efter %> då skriver den ut LäL, det funkar alltså. Då har det väl inget med Content-Type, eller charset att göra?
I alla fall, tar jag bort <!-- #include virtual="files\fckeditor.asp" --> så funkar det bra med Response.Write och <% %>.
Alltså måste det vara något FCKeditor gör, men jag verkar inte hitta något fel i koden. FCKeditor är kopplad till Javascript, men det har inget att göra med det eftersom det funkar med ä innan <% eller efte %>. Plus, man måste aktivera classen innan javascript kommer med i bilden.
Så här ser FCKeditor.asp ut
<%
Class FCKeditor
Private sBasePath
Private sInstanceName
Private sWidth
Private sHeight
Private sToolbarSet
Private sValue
Private sWrite
Private oConfig
Private Sub Class_Initialize()
sBasePath = "/FCKeditor/"
sWidth = "100%"
sHeight = "200"
sToolbarSet = "Default"
sValue = ""
Set oConfig = CreateObject("Scripting.Dictionary")
End Sub
Public Property Let BasePath( basePathValue )
sBasePath = basePathValue
End Property
Public Property Let InstanceName( instanceNameValue )
sInstanceName = instanceNameValue
End Property
Public Property Let Width( widthValue )
sWidth = widthValue
End Property
Public Property Let Height( heightValue )
sHeight = heightValue
End Property
Public Property Let ToolbarSet( toolbarSetValue )
sToolbarSet = toolbarSetValue
End Property
Public Property Let Value( newValue )
If ( IsNull( newValue ) OR IsEmpty( newValue ) ) Then
sValue = ""
Else
sValue = newValue
End If
End Property
Public Property Let Config( configKey, configValue )
oConfig.Add configKey, configValue
End Property
Public Function Create( instanceName )
sWrite = sWrite & "<div>"
If IsCompatible() Then
Dim sFile
If Request.QueryString( "fcksource" ) = "true" Then
sFile = "fckeditor.original.html"
Else
sFile = "fckeditor.html"
End If
Dim sLink
sLink = sBasePath & "editor/" & sFile & "?InstanceName=" + instanceName
If (sToolbarSet & "") <> "" Then
sLink = sLink + "&Toolbar=" & sToolbarSet
End If
' Render the linked hidden field.
sWrite = sWrite & "<input type=""hidden"" id=""" & instanceName & """ name=""" & instanceName & """ value=""" & Server.HTMLEncode( sValue ) & """ style=""display:none"" />"
' Render the configurations hidden field.
sWrite = sWrite & "<input type=""hidden"" id=""" & instanceName & "___Config"" value=""" & GetConfigFieldString() & """ style=""display:none"" />"
' Render the editor IFRAME.
sWrite = sWrite & "<iframe id=""" & instanceName & "___Frame"" src=""" & sLink & """ width=""" & sWidth & """ height=""" & sHeight & """ frameborder=""no"" scrolling=""no""></iframe>"
Else
Dim sWidthCSS, sHeightCSS
If InStr( sWidth, "%" ) > 0 Then
sWidthCSS = sWidth
Else
sWidthCSS = sWidth & "px"
End If
If InStr( sHeight, "%" ) > 0 Then
sHeightCSS = sHeight
Else
sHeightCSS = sHeight & "px"
End If
sWrite = sWrite & "<textarea name=""" & instanceName & """ rows=""4"" cols=""40"" style=""width: " & sWidthCSS & "; height: " & sHeightCSS & """>" & Server.HTMLEncode( sValue ) & "</textarea>"
End If
sWrite = sWrite & "</div>"
End Function
Private Function IsCompatible()
Dim sAgent
sAgent = Request.ServerVariables("HTTP_USER_AGENT")
Dim iVersion
If InStr(sAgent, "MSIE") > 0 AND InStr(sAgent, "mac") <= 0 AND InStr(sAgent, "Opera") <= 0 Then
iVersion = CInt( ToNumericFormat( Mid(sAgent, InStr(sAgent, "MSIE") + 5, 3) ) )
IsCompatible = ( iVersion >= 5.5 )
ElseIf InStr(sAgent, "Gecko/") > 0 Then
iVersion = CLng( Mid( sAgent, InStr( sAgent, "Gecko/" ) + 6, 8 ) )
IsCompatible = ( iVersion >= 20030210 )
Else
IsCompatible = False
End If
End Function
' By Agrotic
' On ASP, when converting string to numbers, the number decimal separator is localized
' so 5.5 will not work on systems were the separator is "," and vice versa.
Private Function ToNumericFormat( numberStr )
If IsNumeric( "5.5" ) Then
ToNumericFormat = Replace( numberStr, ",", ".")
Else
ToNumericFormat = Replace( numberStr, ".", ",")
End If
End Function
Private Function GetConfigFieldString()
Dim sParams
Dim bFirst
bFirst = True
Dim sKey
For Each sKey in oConfig
If bFirst = False Then
sParams = sParams & "&"
Else
bFirst = False
End If
sParams = sParams & EncodeConfig( sKey ) & "=" & EncodeConfig( oConfig(sKey) )
Next
GetConfigFieldString = sParams
End Function
Private Function EncodeConfig( valueToEncode )
EncodeConfig = Replace( valueToEncode, "&", "%26" )
EncodeConfig = Replace( EncodeConfig , "=", "%3D" )
EncodeConfig = Replace( EncodeConfig , """", "%22" )
End Function
Public Function WrittenText
WrittenText = sWrite
End Function
End Class
%>
Vill bara göra några saker klara:
1. Detta gäller inte bara ä, utan å och ö också.
2. Detta händer även om jag INTE aktiverar classen.
3. Jag använder inte, CharSet, Content-Type, CodePage eller något liknande. Inte i ASP, eller HTML.
Du skulle ju kunna skriva ut det såhär:
ä = ä
Ä = Ä
Ö = Ö
ö = ö
Å = Å
å = å
Lite krångligt kanske. Funkar det då?
Jo, det funkar, bara oavsett... men det funkar inte när jag gör så här:
<script>
alert('<%=Session("message")%>');
</script>
Session("message") Innehåller "År du hemma?"
Då skriver ovanstånde Alert "År du hemma?" och inte "Är du hemma"
EDIT: Jag tror detta föreblir ett mysterium
HEJ!
Eftersom jag precis börjat använda FCKEditor kommer jag med några förslag:
1. Jag hade problem med åäö också, eftersom den använde utf-8. Server.HTMLEncode löste det. (Använde asp-varianten.)
2. Fungerar deras exempel, dels på webben, dels bifogade?
Avslutar med att jag inte känner igen dina problem, försöker du göra något väldigt konstigt?
Nej... det är bara så att... jag inte kan skriva ut åäö ifall jag har inkluderat fckeditor...
Inget mer...
Response.Write "åäö"
<!-- #include virtual="files\fckeditor.asp" -->
HEJ!
Okej.
Långsökt, men ändå ett förslag, hämta hem filerna igen, börja om. Filerna bör ju inte kunna bli korrupta...
Alternativt installera bef filer på en annan dator, se om det blir samma fel/när det blir fel.
lite sent nu kanske men jag hade samma problem och det löste sig när jag la till följade ovanför inkluderingen av FCK:
Session.CodePage=1252
Den tackar vi för lite sådär i efterhand, hjälpte mig :)
Tackar Thomasa
Funkar perfekt!
Thomasa skrev:
lite sent nu kanske men jag hade samma problem och det löste sig när jag la till följade ovanför inkluderingen av FCK:
Session.CodePage=1252
Sent bättre än aldrig ;)