Поиск следующего человека:
Я использовал "\ 0 \ t" в качестве разделителя полей и "\ 0 \ n" для разделителя конца строки в последнем поле. Использование "\ 0 \ r \ n" также будет приемлемо, если вы хотите сделать вид, что файлы имеют соглашения DOS EOL.
Для тех, кто не знаком с обозначением \ x, \ 0 - это CHAR (0), \ t - это CHAR (9), \ n - это CHAR (10), а \ r - это CHAR (13). Замените функцию CHAR () на то, что ваш язык предлагает для преобразования числа в назначенный символ.
При этой комбинации все экземпляры \ t и \ n (и \ r) становятся допустимыми символами в файле данных. В конце концов, слабость системы массовой загрузки заключается в том, что символы табуляции и перевода строки часто являются допустимыми символами в текстовых строках, тогда как другие символы с низким ASCII, такие как CHAR (0), CHAR (1) и CHAR (2), не являются легальным текстом - даже появляется в UTF-8.
Единственный символ, который вы не можете использовать в своих данных, это \ 0 - ЕСЛИ вы не можете гарантировать, что за ним никогда не последует \ t или \ n (или \ r)
Если ваш язык испытывает проблемы, когда вы используете \ 0 в строках (но в зависимости от того, как вы кодируете, вы все равно сможете избежать этой проблемы) - И если вы знаете, что ваши данные не будут иметь CHAR (1) или CHAR (2) в нем (то есть без двоичного кода) затем используют эти символы вместо этого. Эти младшие символы можно найти только тогда, когда вы пытаетесь сохранить произвольные двоичные данные в строках.
Обратите внимание, что вы найдете байты 0, 1, 2 в UTF-16, UCS-2 и UTF-32 (он же UCS-4) - НО - представление CHAR в 2 или 4 байта (0, 1 или 2) все еще приемлемо и отличается от любого легального текста в юникоде. Просто убедитесь, что вы выбрали правильную настройку кодовой страницы в файле формата, соответствующую вашему выбору варианта UTF или UCS.