chr(9), chr(10), chr(13), chr(32), chr(34)
Todas as tabelas sobre códigos ASCII: [url][/url]
chr(13) é um retorno de carro
Chr(10) é um caractere de nova linha
chr(32) é um caractere de espaço
34/09 é uma guia, não determinado?
Aqui estão alguns exemplos
caractere de espaço especial
Na programação asp, costumamos usar a função trim(rtrim,ltrim) para remover os espaços no início e no final de alguns dados. O autor escreveu recentemente uma sala de bate-papo asp com o seguinte código:
<% dim nome,título
nome=trim(request.form("nome"))
senha=trim(request.form("senha"))
if name=""ou senha="" then response.redirect "error.asp?error=name&name=null"
meuDSN="DSN=teste;uid=teste;pwd=teste"
definir cn=server.createobject("adodb.connection")
cn.abrir meuDSN
sql="inserir em teste(nome,título) valores('"&nome&"','"&senha&"')"
cn.execute(sql)
cn.fechar%>
O autor usou a função trim para remover os espaços no início e no final. Em circunstâncias normais, este programa era executado normalmente, mas depois descobri que alguém poderia usar espaços para entrar, o que significa que o nome do usuário era completamente espaços. o autor tentou usar espaços, mas não conseguiu passar (ou seja, foi detectado pelo programa. Os espaços no início e no final foram removidos pela função trim, mesmo que haja espaços no meio, posso usá-los). se necessário. Use uma função para remover os espaços no meio Como o autor está usando as informações do usuário registradas no banco de dados sql, o autor suspeita que usou outra coisa para evitar que o sistema as veja, então ele vai verificar o banco de dados sql. que registra as informações do usuário (o autor usou esse método para ver os usuários com quebras de linha), mas ainda vejo que as informações do usuário no banco de dados também possuem espaços. Isso significa que esse usuário usou um método para ignorar meu nome de usuário. e monitoramento de senha? ? ? Eu realmente não consegui encontrar nenhuma brecha no programa, então só pude pedir conselhos a esse usuário. Felizmente, ele me disse prontamente que era "Alt + 255", mantenha pressionada a tecla alt e pressione ". Center" no teclado pequeno. 2", "5", "5" produzirá um caractere especial de "espaço" (o autor não é muito claro sobre este conceito. Este é um caractere de controle, em alguns compiladores Você pode ver word2000 no editor, e deve haver outros caracteres de controle). Este caractere de espaço é diferente do caractere tradicional gerado pressionando a barra de espaço. Seu código asc é 255, e o código asc do espaço tradicional digitado é. 32. A função trim só pode reconhecer e remover o código com código asc 32, portanto há usuários com espaços! Em resposta a esta situação, o autor projetou as duas funções a seguir para remover o caractere “espaço”:
função xuankong(str)
resultado escuro
escurecer j
j=len(str)
resultado = ""
escurecer eu
para eu = 1 para j
selecione caso no meio (str,i,1)
caso "<"
resultado=resultado+"<"
caso ">"
resultado=resultado+">"
caso ch(34)
resultado=resultado+"""
caso "&"
result=result+"&" 'O código acima converte algumas tags HTML
case chr(255) 'Evita espaços especiais
resultado=resultado
case chr(13) 'Evita retornos de carro
resultado=resultado+""
case chr(10) 'Evita caracteres de nova linha
resultado=resultado+""
caso mais
resultado=resultado+mid(str,i,1)
final selecionar
próximo
xuakong=resultado
função final
Em seguida, use esta função em seu programa asp, como:
nome=xuankong(trim(request.form("nome")))
Como o valor do caractere 0-z do código asc está no intervalo 48-122, você pode usar o seguinte método para monitorar:
escurecer j
j=len(trim(request.form("nome")))
para eu = 1 para j
se asc(mid(nome,i,1))>122 ou asc(mid(nome,i,1))<48 então resposta..redirect"error.asp?
erro=especial"
próximo
Embora ainda não tenha sido descoberto que esse tipo de “espaço” causa problemas que danifiquem o programa, ele pode causar problemas e é melhor evitá-lo. No entanto, esse tipo de espaço também tem uma vantagem se for usado como tal. sua senha de Internet, hehe... Infelizmente, muitas pessoas não conseguem ver! Tudo que vi foi pensado para ser espaço, mas não era... O autor não tem familiaridade com php e jsp, então não sei se existe esse tipo de problema nessas duas coisas.
neweguo 12/01/2006 01:55
Como ler espaços
Como ler espaços
Freqüentemente, precisamos exibir dinamicamente o conteúdo extraído de arquivos em páginas da web. Se você escrever um programa como uma sala de bate-papo ou fórum, o conteúdo de cada palestrante deve primeiro ser armazenado em um arquivo de texto e depois exibido no arquivo de texto. página da Internet. Mas o controle que usamos na página web para permitir que os usuários insiram conteúdo é a caixa de texto. Então, quando o conteúdo da caixa de texto for exibido na página da web, caracteres como espaços e quebras de linha não poderão ser exibidos, o que significa que não há parágrafos. Para exibir parágrafos em uma página da web, as tags HTML devem ser inseridas nos espaços e caracteres de nova linha onde inserimos o texto para exibir esses caracteres.
Se houver uma tela de sala de bate-papo na página da web, após inserir o conteúdo na caixa de texto, clique em “Enviar” para exibir nosso conteúdo na página. A caixa de texto é chamada de Texto1. Realize de forma muito inteligente a função de exibir quebras de linha de texto e espaços.
<%
...
...
str=request.querystring("texto1")
str=Substituir(str, Chr(32), " ")
'Substitua espaços por sinais
str=Substituir(str, vbCrLf, "<br>")
'Substitua os caracteres de retorno de carro e avanço de linha pela flag <br>
Resposta.write str
...
...
%>
Depois de passar o código acima, alteramos os caracteres de retorno de carro e avanço de linha no texto para a marca de avanço de linha <br> que o navegador pode reconhecer e substituímos os espaços pela marca de espaço. Entre eles, Chr(32) representa um espaço e vbCrLf representa um retorno de carro e avanço de linha.
neweguo 12/01/2006 01:55
chr(13) é um retorno de carro
(
Exemplo: Substitua todos os retornos de carro por <br/>
#Replace(foo, Chr(13), "<br />", "ALL")#
)
Chr(10) é um caractere de nova linha
Todas as tabelas sobre códigos ASCII: [url][/url]
<cfscript>
/**
* Uma versão aprimorada da função de formatação de parágrafo de artigo
* Use ) para substituir TAB e oferecer suporte a vários sistemas
* Reescrita e suporte multiOS por Nathan Dintenfas.
*
* @param string A string a ser formatada (obrigatório).
* @return Retorna uma string.
* @autor Ben Forta ([email][email protected][/email])
* @versão 3, 26 de junho de 2002
*/
função Paragrap1hFormat2(str) {
//primeiro transforma o estilo Windows em estilo Unix
str = substituir(str,chr(13)&chr(10),chr(10),"TODOS");
//agora transforma o estilo Macintosh em estilo Unix
str = substituir(str,chr(13),chr(10),"TODOS");
//agora corrige abas
str = substituir(str,chr(9)," ","TODOS");
//agora retorna o texto formatado em HTML
return substituir(str,chr(10),"<br />","ALL");
}
</cfscript>