IBM Support

NLS issues in DataStage with displayable characters in range 0x80 to 0x9F

Troubleshooting


Problem

Data that appears fine when viewed in the Database via tools such as Toad, cause errors when processing in DataStage

Symptom

Invalid character(s) ([x2013]) found converting Unicode string (code point(s): [x2013]) to codepage ASCL_ISO8859-1, substituting The character(s) may display in a log file as the character "?".

Cause


The Windows character set and encoding MS1252 is not compatible with that of ISO-8859-1. As such there are characters available in Windows that cannot be represented by default in Linux/Unix. The following table lists these characters. Some of these characters such as en dash and em dash may as glyphs that appear indistinguishable from characters that are in ISO-8859-1 such as hyphen-minus and can cause confusion.

CharacterCharacter NameHexDecimalUnicode
Euro Sign8012820AC
Single Low-9 Quotation Mark82130201A
ƒLatin Small Letter F with Hook831310192
Double Low-9 Quotation Mark84132201E
Horizontal Ellipsis851332026
Dagger861342020
Double Dagger871352021
ˆModifier Letter Circumflex Accent8813602C6
Per Mille Sign891372030
ŠLatin Capital Letter S with Caron8A1380160
Single Left-Pointing Angle Quotation Mark8B1392039
ŒLatin Capital Ligature OE8C1400152
ŽLatin Capital Letter Z with Caron8E142017D
Left Single Quotation Mark911452018
Right Single Quotation Mark921462019
Left Double Quotation Mark93147201C
Right Double Quotation Mark94148201D
Bullet951492022
En Dash961502013
Em Dash971512014
˜Small Tilde9815202DC
Trade Mark Sign991532122
šLatin Small Letter S with Caron9A1540161
Single Right-Pointing Angle Quotation Mark9B155203A
œLatin Small Ligature OE9C1560153
žLatin Small Letter Z with Caron9E158017E
ŸLatin Capital Letter Y with Diaeresis9F1590178

Environment

Most likely to be seen when processing data originally from a Windows machine on a Unix based system.

Diagnosing The Problem

Look at the data in hex to ascertain the encoding of the character in question, if from a text file use od to view or if from a database use a relevant function such as CONVERT to varbinary in SQLServer.

Resolving The Problem

Use the NLS map for MS1252 such as windows-1252 or ASCL_MS1252

[{"Product":{"code":"SSVSEF","label":"IBM InfoSphere DataStage"},"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Component":"--","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF010","label":"HP-UX"},{"code":"PF016","label":"Linux"},{"code":"PF027","label":"Solaris"}],"Version":"11.3;11.5;8.5;8.7;9.1","Edition":"","Line of Business":{"code":"LOB10","label":"Data and AI"}}]

Document Information

Modified date:
16 June 2018

UID

swg21984257