Skip to content

ABAP Keyword Documentation →  ABAP - Reference →  Processing External Data →  ABAP File Interface →  Statements for the ABAP File Interface →  OPEN DATASET →  OPEN DATASET - mode 

OPEN DATASET - encoding

Short Reference

Other versions: 7.31 | 7.40 | 7.54

Syntax


... ENCODING { DEFAULT 
             | {UTF-8 [SKIPPING|WITH BYTE-ORDER MARK]}
             | NON-UNICODE } ...

Alternatives

1. ... DEFAULT

2. ... UTF-8 [SKIPPING|WITH BYTE-ORDER MARK]

3. ... NON-UNICODE

Effect

The additions after the mandatory addition ENCODING define the character representation in which the content of a text file is handled.


Note

In obsolete non-Unicode programs, the addition ENCODING can also be omitted. If the addition ENCODING is not specified, the addition NON-UNICODE is used implicitly.

Programming Guideline

Write text files in UTF-8 and with a byte order mark.


Note

We recommend always writing files in UTF-8, if all readers can process this format. Otherwise, the code page can depend on the text environment and it is difficult to identify the code page from the file content.

Alternative 1

... DEFAULT

Effect

In a Unicode system, specifying DEFAULT is the same as specifying UTF-8; in a non-Unicode system, it is the same as NON-UNICODE.

Alternative 2

... UTF-8 [SKIPPING|WITH BYTE-ORDER MARK]

Addition

... SKIPPING|WITH BYTE-ORDER MARK

Effect

The characters in the file are handled in accordance with the Unicode character representation UTF-8.


Notes

  • The class CL_ABAP_FILE_UTILITIES contains the method CHECK_UTF8 for determining whether a file is a UTF-8 file.
  • A UTF-16 file can only be opened as a binary file.

Addition

... SKIPPING|WITH BYTE-ORDER MARK

Effect

This addition defines how the byte order mark (BOM), with which a file encoded in the UTF-8 format can begin, is handled. The BOM is a sequence of three bytes that indicates that a file is encoded in UTF-8.

  • SKIPPING BYTE-ORDER MARK
    is only permitted if the file is opened for reading or changing using FOR INPUT or FOR UPDATE. If there is a BOM at the start of the file, this is ignored and the file pointer is set after it. Without the addition, the BOM is handled as normal file content.
  • WITH BYTE-ORDER MARK
    is only permitted if the file is opened for writing using FOR OUTPUT. When the file is opened, a BOM is inserted at the start of the file. Without the addition, no BOM is inserted.

The addition BYTE-ORDER MARK cannot be used together with the AT POSITION addition.


Notes

  • When opening UTF-8 files for reading, it is best to always enter the addition SKIPPING BYTE-ORDER MARK to prevent a BOM from being handled as file content.
  • It is recommended to always open a file for reading as a UTF-8 with the addition WITH BYTE-ORDER MARK, if all readers can process this format.
  • The method CREATE_UTF8_FILE_WITH_BOM in the system class CL_ABAP_FILE_UTILITIES can be used to create a file with BOM.

Alternative 3

... NON-UNICODE

Effect

In a non-Unicode system, the data is read or written without being converted. In a Unicode system, the characters of the file are handled in accordance with the non-Unicode code page that would be assigned at read or write time in a non-Unicode system, in accordance with the entry in the database table TCP0C of the current text environment.