Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Amigo_zz

Acentos desaparecidos em combate

Recommended Posts

colegas,

 

Num formulario online basta eu incluir o ficheiro de FCKEditor.asp que ele faz desaparecer os acentos, quer os que estão dentro de ASP, tanto como os textos provenientes de formularios via POST.

 

O codigo do ficheiro é este:

 

Class FCKeditor	private sBasePath	private sInstanceName	private sWidth	private sHeight	private sToolbarSet	private sValue	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 )		sValue = newValue	End Property	Public Property Let Config( configKey, configValue )		oConfig.Add configKey, configValue	End Property	Public Function Create( instanceName )		Response.Write "<div>"		If IsCompatible() Then			Dim sLink			sLink = sBasePath & "editor/fckeditor.html?InstanceName=" + instanceName			If (sToolbarSet & "") <> "" Then				sLink = sLink + "&Toolbar=" & sToolbarSet			End If			' Render the linked hidden field.			Response.Write "<input type=""hidden"" id=""" & instanceName & """ name=""" & instanceName & """ value=""" & Server.HTMLEncode( sValue ) & """>"			' Render the configurations hidden field.			Response.Write "<input type=""hidden"" id=""" & instanceName & "___Config"" value=""" & GetConfigFieldString() & """>"			' Render the editor IFRAME.			Response.Write "<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			Response.Write "<textarea name=""" & instanceName & """ id=""" & instanceName & """ rows=""4"" cols=""40"" style=""width: " & sWidthCSS & "; height: " & sHeightCSS & """ wrap=""virtual"">" & Server.HTMLEncode( sValue ) & "</textarea>"		End If		Response.Write "</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 FunctionEnd Class

Alguém me sabe dizer o que poderá originar este desaparecimento?

 

No ficheiro do form também tenho

 

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha, eu não sei se funciona nesse caso também, mas me ensinaram um método de não perder os acentos em transmissões de dados.

 

Faça assim: antes da transmissão dos dados, codifique-os como URL, assim:

string = URLencode(string)

Eu não tenho certeza se a sintaxe é essa, viu?

 

Então, já na saída dos dados, decodifique-o com o HTMLencode.

É a mesma idéis, só muda de URLencode pra HTMLencode.

 

 

Antes de fazer o que eu disse, procura a sintaxe desses dois comandos, valeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Outra coisa, o que é esse código aí???Eu nunca tinha usado o dictionary na minha vida.

Compartilhar este post


Link para o post
Compartilhar em outros sites

coloque isso na paginas do formulario e na que faz a gravacao/envio..

<%Response.Charset="ISO-8859-1" %>
O problema é que o FCK Editor utiliza UTF-8 ... por isso dá este problema ...Eu já tive este mesmo problema, e , ao conversar com o LucarBr e compararmos as nossas versões, cheguei a conclusão que a solução é você criar um Iframe na página e colocar o FCK nesta página ... Estou usando a versão 2.2.Segundo o LucasBr, na versão 1.3, ele cria este Iframe automaticamente, por isso não tem este problema ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou tendo o mesmo problema. Alguém já conseguiu achar alguma solução???No caso do iframe, como que eu iria recuperar os dados depois??? eu fiz um teste, porém se meus campos estão fora do iframe e o fckeditor está dentro, ele só vai reconhecer os que estão fora, correto???Estou pensando em separar meu fckeditor do restante do form viu, passei 6 horas hoje tentando resolver este problema e nada...Bom, se alguém tiver a solução, ficaria grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu depois de varios dias perdido resolvi separar o editor dos outros formularios. Dai desde de cadastrar tudo de uma vez eu faço em dois passos. Mais essa não é a solução correta, eu fiz assim porque já nao podia mais ver o formulario enviando as informacoes erradas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

É... já desisti, fiz assim também...abraços !!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.