<globalization uiculture="pt-BR" culture="pt-BR" fileencoding="iso-8859-1" responseencoding="utf-8" requestencoding="utf-8">Para a passagem de parâmetros via QueryString, na língua portuguesa sempre há o problema de caracteres acentuados e a cedilha. Para contornar este problema os browsers sempre codificam os caracteres acentuados, de uma das seguintes formas:
- escape(), ex:
@ vira %7E
- encodeURI(), ex: % vira %25
- encodeURIComponent(), ex: @ vira %40
Request.Params["nomedoparâmetro"];Mas se o parâmetro não tiver sido codificado explicitamente, ele será codificado de forma que não será possível decodificar com nenhum dos métodos abaixo:
- Microsoft.JScript.GlobalObject
.unescape(), complementada por escape() - Microsoft.JScript.GlobalObject
.decodeURI(), complementada por encodeURI() - Microsoft.JScript.GlobalObject
.decodeURIComponent(), complementada por encodeURIComponent() - Server.UrlDecode(), complementada por Server.UrlEncode()
Já no JavaScript (e também no JScript) existem escape(), encodeURI() e encodeURIComponent() e as funções inversas.
Quando a meta tag de codificação iso-8859-1 não está presente no header do documento HTML, faz-se necessário utilizar a codificação HTML, também chamados de entity escape characters. Para realizar a conversão você pode fazer manualmente com ajuda desta tabela, ou utilizar as seguintes funções:
ASP.NET
- Server.HtmlDecode()
- Server.HtmlEncode()
- escapeHTML()
- unescapeHTML()
function escapeHTML() {
var self = arguments.callee;
self.text.data = this;
return self.div.innerHTML;
}
function unescapeHTML() {
var div = new Element('div');
div.innerHTML = this.stripTags();
return div.childNodes[0] ? (div.childNodes.length > 1 ?
$A(div.childNodes).inject('', function(memo, node) { return memo+node.nodeValue }) :
div.childNodes[0].nodeValue) : '';
}
function $A(iterable) {
if (!iterable) return [];
if (iterable.toArray) return iterable.toArray();
var length = iterable.length, results = new Array(length);
while (length--) results[length] = iterable[length];
return results;
}
Um comentário:
opah amigo,
parabéns pelo blog...uauuhauh
falows
Postar um comentário