У меня есть несколько полей текстовой области, которые заполняются через какую-то внешнюю службу через API, а также пользователями, которые иногда создают новые записи, а также изменяют существующие. Через API я могу записывать все виды комбинаций разрывов строк (CRLF, CR, LF) в поля «как есть», при этом они всегда будут экспортироваться через загрузчик данных как LF. Но если я отредактирую запись через пользовательский интерфейс, разрывы строк будут преобразованы в CRLF, чего не произойдет с помощью кода (даже если я напрямую изменю это поле). Кроме того, все они будут отображаться как разрыв строки в пользовательском интерфейсе в режиме редактирования, в то время как только CRLF и LF будут отображаться как разрыв строки в деталях записи или при визуализации через Visualforce.

Это поведение кажется настолько странным и непоследовательным, что мне интересно, есть ли «правильный» способ сохранить разрыв строки в Salesforce или, по крайней мере, собственный способ. Что-то, на что я могу положиться. Поскольку впоследствии я делаю некоторые замены (по историческим причинам), это действительно испортит мои результаты.

Любой совет?

2
Semmel 4 Авг 2020 в 03:18

1 ответ

Лучший ответ

Я не знаю, есть ли какая-либо официальная документация помимо Руководства разработчика Salesforce Apex, в которой предлагается, что использовать; все примеры кода в документации используют исключительно \n (0x10/LF) (и \t для 0x09/tab). Я всегда использовал исключительно LF в любом написанном мной коде, и у меня никогда не было с этим проблем. Я бы сказал, что это ваш лучший выбор, если только вы не ориентируетесь на формат файла, предназначенный для устаревших приложений Windows/DOS, которым требуется CRLF (\r\n). При анализе любого вида ввода я предлагаю преобразовать CRLF в LF (это должно быть безвредно).

1
sfdcfox 4 Авг 2020 в 03:43