A binary-safe function is a function or operation that can be performed on a binary file without modifying the contents of the file. This ensures that the file is not corrupted or mutilated by the function or operation.
Binary data is encoded as a string of ones and zeros (bits), but is not formatted in any particular way. The bits are simply there, and no meaning is attached to them. Most programs, in contrast, have formatting codes that assign certain meanings to specific strings of bits. When a program is used in an attempt to read a binary file, the file is interpreted according to the rules of that program. Unless the formatting codes of the reading program match the formatting codes of the program in which the file was written, the display makes no sense, or else contains a jumble of apparently meaningless symbols in addition to data that has been stripped of formatting codes.
An image such as a JPEG file can be opened in a word processor, but the image does not appear. Instead, garbage is displayed. Any attempt to edit and then save a JPEG file using a word processor will result in modification of the binary data, such that the result is no longer readable by the intended program. The file is, in effect, corrupted. The editing of a JPEG image file using a word processor is thus an example of a function that is not binary-safe.
Issues with binary safety are often encountered when binary files are transferred over the Internet. This is especially true for large files, which can cause overflow of the memory, buffer, or storage capacity in one or more servers. Sometimes, transferred files are subjected to functions that strip formatting codes, or that incorrectly interpret certain binary strings as formatting codes. For example, angle brackets can be falsely interpreted as markers for HTML tags, or desired tags may be lost in the transfer of an HTML file. Quotation marks in plain-text or ASCII format may not be read that way by a Web browser. An HTML editor will convert quotation marks (") into a string of characters to prevent this confusion. An extra space ( ) in a Web page appears as a string of characters when the HTML source code is viewed in a text editor such as Windows Notepad. Conversely, such character strings are interpreted by Web browsers as quotation marks and spaces, even if the author of the file did not intend for them to be interpreted that way.
Binary files can be protected from undesired modification by programs. In the worst-case scenario, such modification can result in permanent loss of data because of file corruption. Sensitive files should always be backed up on read-only media such as a recordable compact disc (CD-R), so the original data can be retrieved in case of unwanted modification by a function that is not binary-safe. When transferring binary files to a Web site using a File Transfer Protocol (FTP) program, the "binary" setting can be used to prevent unwanted modification of the file contents during the transfer process.