Вырывающиеся разрывы строк для удобного редактирования человеком

#escaping

Вопрос:

У меня есть база данных, в которой, как минимум, есть столбцы type|text .
Теперь я хочу сбросить ее в текстовый файл, который может быть отредактирован человеком, а затем снова импортирован в базу данных. Поскольку text столбец может содержать разрывы строк, мне нужно каким-то образом избежать их.

Одним из примеров было бы просто избежать взломов линий:

 1|some text
2|some other text
1|this is
multiline
text
1|even more text
 

два недостатка заключаются в том, что экранирование каждого конца строки утомительно для человека, редактирующего данные, а многострочные текстовые записи встречаются редко.

Другой подход может заключаться в том, чтобы рассматривать все строки, которые не начинаются с [0-9]| , как принадлежащие предыдущей строке(строкам), но многострочный текст может содержать строки , которые начинаются с [0-9]| , тем более, что люди могут добавлять строки из такого текстового дампа в качестве новых записей. Так что для этого потребуется какое-то спасение, например

 1|some text
2|this is multi-line
and does not need to be escaped
1|this is multi-line text
1|with the next line escaped because it starts with 1|
1|even more text
 

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

Сейчас я ищу схему, которая проста в использовании для людей и легко разбирается обратно в строки базы данных.