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
Other versions: 7.31 | 7.40 | 7.54
Syntax
... ENCODING { DEFAULT
| {UTF-8 [SKIPPING|WITH BYTE-ORDER MARK]}
| NON-UNICODE } ...
Alternatives
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 usingFOR INPUT
orFOR 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 usingFOR 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.