chr(9), chr(10), chr(13), chr(32), chr(34)
Все таблицы о кодах ASCII: [url][/url]
chr(13) — возврат каретки
Chr(10) — символ новой строки.
chr(32) — пробел
9/34 - это вкладка, не определяется?
Вот несколько примеров
специальный космический символ
В программировании на asp мы часто используем функцию обрезки (rtrim, ltrim) для удаления пробелов в начале и конце некоторых данных. Автор недавно написал чат asp со следующим кодом:
<% затемненное имя, заголовок
name=trim(request.form("имя"))
пароль = обрезка (request.form («пароль»))
если имя=""или пароль="" то ответ.перенаправление "error.asp?error=name&name=null"
myDSN="DSN=test;uid=test;pwd=test"
set cn=server.createobject("adodb.connection")
cn.open myDSN
sql="вставить в значения test(name,title)('"&name&"','"&password&"')"
cn.execute(sql)
сп.закрыть%>
Автор использовал функцию обрезки для удаления пробелов в начале и конце. В обычных обстоятельствах эта программа выполнялась нормально, но позже автор обнаружил, что кто-то мог использовать пробелы для ввода, а это означает, что имя пользователя было полностью пробелами. автор пытался использовать пробелы сам, но не смог передать (то есть обнаружилось программой). Пробелы в начале и конце были удалены функцией обрезки. Даже если в середине есть пробелы, я. можно использовать при необходимости. Используйте функцию для удаления пробелов в середине. Поскольку автор использует информацию о пользователе, записанную в базе данных sql, автор подозревает, что он использовал что-то еще, чтобы система не увидела ее, поэтому он идет проверить базу данных sql. который записывает информацию о пользователе (автор использовал этот метод, чтобы увидеть пользователей с разрывами строк), но я все равно вижу, что информация о пользователе в базе данных также имеет пробелы. Означает ли это, что этот пользователь использовал метод для обхода моего имени пользователя. и мониторинг паролей? ? ? Я действительно не смог найти никаких лазеек в программе, поэтому мне оставалось только спросить совета у этого пользователя. К счастью, этот пользователь с готовностью рассказал мне, что это оказалось "Alt+255", зажмите клавишу alt и затем нажмите ". Центр» на маленькой клавиатуре. 2», «5», «5» создаст специальный символ «пробел» (автор не очень разъясняет эту концепцию. Это управляющий символ, который используется в некоторых компиляторах. Вы можете увидеть слово 2000, и там должны быть другие управляющие символы.) Этот символ пробела отличается от традиционного символа, создаваемого нажатием клавиши пробела. Его код возрастания — 255, а код возрастания традиционного пробела — пробела. 32. Функция обрезки умеет распознавать и удалять только код по возрастанию 32, поэтому есть пользователи с пробелами! В ответ на эту ситуацию автор разработал следующие две функции для удаления символа «пробел»:
функция сюанькун(ул)
тусклый результат
дим дж
j=len(str)
результат=""
тусклый я
для я = от 1 до j
выберите регистр в середине (str,i,1)
случай "<"
результат=результат+"<"
случай ">"
результат=результат+">"
корпус chr(34)
результат=результат+"""
случай "&"
result=result+"&" 'Приведенный выше код преобразует некоторые HTML-теги
case chr(255) 'Запретить использование специальных пробелов
результат = результат
case chr(13) 'Запретить возврат каретки
результат=результат+""
case chr(10) 'Запретить символы новой строки
результат=результат+""
еще случай
результат = результат + середина (str, i, 1)
конец выбора
следующий
Сюанькун = результат
конечная функция
Затем используйте эту функцию в своей программе asp, например:
name=xuankong(trim(request.form("имя")))
Поскольку значение кода возрастания символов 0–z находится в диапазоне 48–122, для мониторинга можно использовать следующий метод:
дим дж
j=len(trim(request.form("имя")))
для я = от 1 до j
если asc(mid(name,i,1))>122 или asc(mid(name,i,1))<48, то ответ..перенаправление"error.asp?
ошибка=специальный"
следующий
Хотя еще не обнаружено, что этот вид «пространства» вызывает проблемы, которые могут повредить программу, но это может вызвать проблемы, и их лучше предотвратить. Однако у такого рода пространства также есть преимущество, если оно используется как твой интернет-пароль, хе-хе... Боюсь, немногие его увидят! Все, что я видел, считалось космосом, но это было не так... Автор не знаком с php и jsp, поэтому я не знаю, существует ли такая проблема в этих двух вещах.
neweguo 12 января 2006 г., 01:55
Как читать пробелы
Как читать пробелы
Нам часто необходимо динамически отображать содержимое, взятое из файлов на веб-страницах. Если вы пишете программу, например чат или форум, содержимое каждого выступающего сначала должно быть сохранено в текстовом файле, а затем отображено на веб-странице. Но элемент управления, который мы используем на веб-странице, чтобы позволить пользователям вводить контент, — это текстовое поле. Затем, когда содержимое текстового поля отображается на веб-странице, такие символы, как пробелы и разрывы строк, не могут отображаться, что означает отсутствие абзацев. Чтобы отобразить абзацы на веб-странице, теги HTML должны быть вставлены в пробелы и разрывы строк, где мы вводим текст для отображения этих символов. См. пример ниже.
Если на веб-странице есть экран чата, после ввода содержимого в текстовое поле нажмите «Отправить», чтобы отобразить наш контент на странице. Текстовое поле называется Text1. Для этого можно использовать следующий метод. очень грамотно реализовать функцию отображения разрывов строк текста и пробелов.
<%
...
...
str=request.querystring("текст1")
str=Replace(str, Chr(32), " ")
'Заменить пробелы знаками
str=Replace(str, vbCrLf, "<br>")
'Замените символы возврата каретки и перевода строки на флаг <br>
Response.write ул
...
...
%>
После передачи приведенного выше кода мы меняем символы возврата каретки и перевода строки в тексте на знак перевода строки <br>, распознаваемый браузером, и заменяем пробелы знаком пробела. Среди них Chr(32) представляет собой пробел, а vbCrLf представляет собой возврат каретки и перевод строки.
neweguo 12 января 2006 г., 01:55
chr(13) — возврат каретки
(
Пример. Замените все возвраты каретки на <br/>.
#Replace(foo, Chr(13), "<br />", "ALL")#
)
Chr(10) — символ новой строки.
Все таблицы о кодах ASCII: [url][/url]
<cfscript>
/**
* Расширенная версия функции форматирования абзаца статьи.
* Используйте ) для замены TAB и поддержки нескольких систем.
* Перезапись и поддержка нескольких ОС от Натана Динтенфаса.
*
* @param string Строка для форматирования (обязательно).
* @return Возвращает строку.
* @author Бен Форта ([email][email protected][/email])
* @версия 3, 26 июня 2002 г.
*/
функция Paragrap1hFormat2(str) {
//сначала преобразуем стиль Windows в стиль Unix
str = replace(str,chr(13)&chr(10),chr(10),"ALL");
//теперь преобразуем стиль Macintosh в стиль Unix
стр = replace(str,chr(13),chr(10),"ALL");
//теперь исправляем вкладки
str = replace(str,chr(9)," ","ALL");
//теперь возвращаем текст, отформатированный в HTML
return replace(str,chr(10),"<br />","ALL");
}
</cfscript>