Универсальный внешний накопитель для всех iOS-устройств, совместим с PC/Mac, Android
Header Banner
8 800 100 5771 | +7 495 540 4266
c 9:00 до 24:00 пн-пт | c 10:00 до 18:00 сб
0 Comments

sql – Что такое CHAR(13) + CHAR(10) и зачем они нужны?

Вижу в скрипте такое значение CHAR(13) + CHAR(10). Вообще скрипт для того, чтобы вставить в таблицу три значения. И вот эти CHAR(13) + CHAR(10) вставлены в скрипт не 3, а 4 раза, то есть обступают значения со всех сторон.

Можете рассказать, что это такое и зачем нужно?

Если будете употреблять слово каретка, то, пожалуйста, уточните, что это значит в sql.

  • sql
  • char

2

char(13) – это carriage return (возврат каретки) – проще говоря символ return/ввод

char(10) – это line feed (новая строка)

Update

Каретка – это был такой в механизм в пишущей машинке, в котором располагался лист бумаги, на которой печатали, на фото это сверху бандура:

Для перевода каретки была такая клавиша называлась возврат каретки или ВК, по английски CR – carriage return (на фото ее роль играет огромный крюк слева вверху)

Исторически раньше печатали все на пишмашинке включая код для компутеров с тех пор это осталось. Сейчас ее роль выполняет клавиша ENTER/RETURN/ВВОД

LineFeed – новая строка, кстати ее роль на фото выполняет черный валик справа, машинистка вручную крутила ее, чтобы перевести новую строку (в зависимости от продвинутости машинки LF иногда надо было переводить вручную, а иногда он был совмещен с CR). Этот анахронизм сохранился до сих пор. В разных операционных системах новая строка трактуется разными наборами символов:

  1. Windows – CR+LF
  2. Unix/Linux – LF
  3. MacOS – CR

P.S. Неужели я это все написал – чувствую себя динозавром 🙂

4

Зарегистрируйтесь или войдите

Регистрация через Google

Регистрация через Facebook

Регистрация через почту

Отправить без регистрации

Почта

Необходима, но никому не показывается

Отправить без регистрации

Почта

Необходима, но никому не показывается

Нажимая на кнопку «Отправить ответ», вы соглашаетесь с нашими пользовательским соглашением, политикой конфиденциальности и политикой о куки

Функция Chr (Visual Basic для приложений)

Twitter LinkedIn Facebook Адрес электронной почты

  • Статья
  • Чтение занимает 2 мин

Возвращает значение типа String, которое содержит символ, связанный с указанным кодом символа.

Синтаксис

Chr(charcode)
ChrB(charcode)
ChrW(charcode)

Обязательным аргументомcharcode является long, который идентифицирует символ.

Числа от 0 до 31 совпадают со стандартными, непечатаемыми кодами ASCII . Например, Chr(10) возвращает символ перевода строки. Обычный диапазон для charcode — 0–255. Однако в системах DBCS фактический диапазон для charcode составляет -32768–65535.

Примечание.

Функция ChrB используется с байтовыми данными, содержащимися в значении String. Вместо знака, который может состоять из одного или двух байт, ChrB всегда возвращает один байт.

Функция ChrW возвращает переменную String, которая содержит знак Юникода. Исключение составляют платформы, не поддерживающие Юникод; в этом случае функция работает так же, как функция Chr.

Примечание.

Visual Basic для macOS не поддерживает строки Юникода. Поэтому ChrW(n) не может возвращать все символы Юникода для n значений в диапазоне от 128 до 65 535, как это делается в среде Windows. Вместо этого ChrW(n) использует “наилучшую замену” для значений Юникода больше 127. В связи с этим не следует использовать ChrW в macOS.

Функции Asc(), AscB() и AscW() противоположны Chr(), ChrB() и ChrW(). Функции Asc() преобразуют строку в целое число.

Пример

В данном примере функция Chr возвращает знак, соответствующий указанному коду знака.

Dim MyChar
MyChar = Chr(65)    ' Returns A.
MyChar = Chr(97)    ' Returns a.
MyChar = Chr(62)    ' Returns >.
MyChar = Chr(37)    ' Returns %.

См. также

  • Кодировка (0–127)
  • Кодировка (128–255)
  • Функции (Visual Basic для приложений)
  • Функции Asc(), AscB() и AscW()

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

В чем разница между ASCII Chr(10) и Chr(13)

Пишу это, потому что никак не могу вспомнить, какой код ascii \n , а какой \r . Обычно я заканчиваю поиском ответа в моей шпаргалке ASCII. Итак, здесь это полностью объяснено, если вам интересно:

Что такое Chr(10)

Код символа ASCII 10 иногда записывается как \n , а иногда его называют New Line или БЕЗ . Символ ASCII 10 также называется переводом строки или LF .

В операционных системах на основе UNIX, таких как Linux или Mac, это все, что вы обычно используете для выделения строки в файле.

Что такое Chr(13)

Код символа ASCII 13 называется Возврат каретки или CR .

На компьютерах под управлением Windows файлы обычно разделяются символом возврата каретки , переводом строки или CRLF 9.0004 . Итак, это Chr(13) , за которым следует Chr(10) , которые составляют правильный CRLF .

Такие вещи, как заголовки HTTP или почтовые заголовки MIME, также разделяются с помощью CRLF .

Если вы когда-либо открывали файл с помощью блокнота в Windows и обнаруживали, что все находится в одной строке, но затем открывали его в другом редакторе и обнаруживали, что строки появляются, причина этого в том, что файл разделен с только LF Chr(10) , а не CRLF . Блокнот не настолько умен, чтобы понять разницу, и шлепает все в одну строку. Большинство текстовых редакторов в Windows, кроме блокнота, не имеют проблем с работой с файлами, которые разделены только символами \n

или Chr(10) .

Все это восходит к пишущей машинке

Термин Carriage Return на самом деле восходит к тому времени, когда широко использовались пишущие машинки. Когда вы нажмете Enter на пишущей машинке, она переместит бумагу на следующую строку (перевод строки!), однако, если вы не вернете каретку (этот рычаг, который вы перемещаете влево), вы будете продолжать печатать, вот пример:

 Сейчас я нажму Enter
                    но я забыл вернуть карету
 

Итак, что я должен использовать в качестве разделителя строк файла?

Я обычно использую только Chr(10) , потому что он занимает меньше места. Если у вас нет случая использования, когда люди будут открывать файлы, которые вы создаете с помощью блокнота, это должно работать нормально.

Также, если ваш файл должен быть подключен к пишущей машинке, я бы удостоверился, что вы используете возврат каретки 😉

Это Char(10) или Chr(10)?

Имя функции для возврата символа ascii из целочисленного кода символа не согласовано между языками программирования. Так что это зависит от того, какой язык вы используете, вот удобная таблица с некоторыми популярными языками:

Язык Перевод строки/новая строка Возврат каретки
Регулярные выражения или RegEx 3 \r
SQL CHAR(10) CHAR(13)
CFML / ColdFusion Chr(10) Chr(13)
PHP Chr(10) Chr(13)
Python Хр(10) Хр(13)
JavaScript String. fromCharCode(10) String.FromChode (13)
Java . ) и Chr(13) впервые были опубликованы 17 мая 2019 года.

форм — нужны ли в Windows и CHR(10), и CHR(13)?

Задавать вопрос

спросил

Изменено 2 месяца назад

Просмотрено 22к раз

Мне нужно исправить проблему в приложении. Приложение представляет собой форму Oracle Form, развернутую на сервере приложений. Форма в конце - это процесс, который должен нажать кнопку, чтобы отправить электронное письмо. В конце кода в кнопке есть код PL/SQL, который вызывает файл CMD внутри C:\. Когда код PL/SQL вызывает файл CMD, он передает 3 аргумента, которые являются строковыми переменными.

У меня проблема с третьим.

это образец 3-го аргумента:

 '** ЗАПРОС ОТПУСКА **'||chr(10)||
'**********************'||хр(10)||хр(10)||
'** Обратите внимание: перешлите это письмо на адрес [email protected]'||chr(10)||
' с указанием того, одобрен или отклонен запрос'||chr(10)||chr(10)||
'Номер запроса: '||:peticiones_vacaciones.codigo||chr(10)||
'Дата запроса: '||to_char(:peticiones_vacaciones.fecha_peticion,'дд/мм/гггг')
  ||хр(10)||хр(10)
 

Файл cmd вызывает скрипт Vbscript, который создает объект Outlook и передает третью переменную в виде тела HTML.

Проблема со всем этим заключается в том, что когда кто-то получает это письмо, в теле письма будет отображаться только первая строка, которая ** ЗАПРОС НА ОТПУСК **, а все остальные части тела отсутствуют.

Я обнаружил, что в окнах с vbscript в конце строки нужно ставить как CHR(10), так и CHR(13) ???

Это правда? Может ли это быть проблемой в моем случае?

  • окна
  • формы
  • vbscript
  • plsql
  • cmd

Стандарт электронной почты (RCF2822) говорит, что строки должны быть разделены возвратом каретки и переводом строки (он же CRLF или chr(13)+chr(10) ) независимо от исходной или целевой платформы (т. е. это не проблема винды).

Обычно CRLF наиболее важен при разделении заголовков, но дополнительно ограничивает длину одной строки текста до не более 998 символов, а предпочтительно не более 78 символов (1000,80 без CRLF символов) .

В разделе 2.3 RFC2822 далее говорится, что тело должно содержать только CRLF вместе , они не должны появляться независимо друг от друга, поэтому вполне вероятно, что какая-то часть почтовой инфраструктуры усекается в этом первом chr(10) . Если вы хотите включить такие символы только в тело, вам нужно будет использовать другую форму кодирования контента... например, base64 (но это выходит за рамки того, о чем вы просите)

Все, что сказано ... если ваш приведенный выше код - VBScript, вы должны использовать и для объединения двух строк (не || ). Если это сценарий plsql, подтвердили ли вы, что вывод этого оператора представляет собой большой объем текста, а не только первую строку?

2

В стандартах электронной почты указано, что строки должны заканчиваться символами CR/LF (chr(13)/chr(10)).

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *