IBM C and C++ Compilers includes several converters that convert code sets to and from Unicode. Because the source or target of the conversion is Unicode, you can convert from virtually any code set to any other code set.
The code set converters supplied by IBM C and C++ Compilers are provided either as tables built by the ICONVDEF utility, or as functions inside CPPRUT36.DLL. The code set converters use the "Enforced subset match" method for characters that are in the input code set but are not in the output code set. All characters not in the output code set are replaced by the SUB character, which is
The tables below show the code set converters supplied with IBM C and C++ Compilers. These are the conversions which make sense. The same characters are supported in all the code pages in a particular table, so converting text from one code page to another can be done without loss.
| Host | PC | ISO 8 | Windows |
| IBM-420 IBM-8612 |
IBM-4960 IBM-864 IBM-9056 |
IBM-1008 IBM-1089 |
IBM-1256 IBM-1046 IBM-5142 |
| IBM-420 | EBCDIC, SB |
| IBM-8612 | EBCDIC, SB, base shapes only |
| IBM-4960 | IBM-PC Data, SB |
| IBM-864 | IBM-PC Data, SB |
| IBM-9056 | IBM-PC Data, SB, Storage/Interchange |
| IBM-1008 | ISO 8, SB |
| IBM-1089 | ISO 8, SB, ISO 8859-6 |
| IBM-1256 | ISO 8, SB, with possible graphics in C1 area, Windows |
| IBM-1046 | ISO 8, SB, with possible graphics in C1 area, Windows |
| IBM-5142 | ISO 8, SB, with possible graphics in C1 area, Windows base shapes only |
| Host | PC | ISO 8 | Windows |
| IBM-1112 | IBM-921 | IBM-1257 |
| IBM-1112 | EBCDIC, SB |
| IBM-921 | ISO 8, SB |
| IBM-1257 | ISO 8, SB, with possible graphics in C1 area, MS Windows |
| Host | PC | ISO 8 | Windows |
| IBM-1122 | IBM-922 |
| IBM-1122 | EBCDIC, SB |
| IBM-922 | ISO 8, SB |
| Host | PC | ISO 8 | Windows |
| IBM-875 IBM-423 |
IBM-851 IBM-869 |
IBM-813 | IBM-1253 |
| IBM-875 | EBCDIC, SB |
| IBM-423 | EBCDIC, SB |
| IBM-851 | IBM-PC Data, SB |
| IBM-869 | IBM-PC Data, SB |
| IBM-813 | ISO 8, SB, ISO 8859-7 Greek/Latin |
| IBM-1253 | ISO 8, SB, with possible graphics in C1 area, MS Windows |
| Host | PC | ISO 8 | Windows |
| IBM-424 | IBM-856 IBM-862 IBM-4952 |
IBM-916 | IBM-1255 |
| IBM-424 | EBCDIC, SB |
| IBM-856 | IBM-PC Data, SB |
| IBM-862 | IBM-PC Data, SB, migration |
| IBM-4952 | IBM-PC Data, SB |
| IBM-916 | ISO 8, SB, ISO 8859-8 Hebrew |
| IBM-1255 | ISO 8, SB, with possible graphics in C1 area, MS Windows |
| Host | PC | ISO 8 | Windows |
| IBM-918 | IBM-868 | IBM-1006 |
| IBM-918 | EBCDIC, SB |
| IBM-868 | IBM-PC Data, SB |
| IBM-1006 | ISO 8, SB |
| Host | PC | ISO 8 | ISO 7 | Windows |
| IBM-500 IBM-037 IBM-273 IBM-277 IBM-278 IBM-280 IBM-284 IBM-285 IBM-297 IBM-871 |
IBM-850 IBM-437 IBM-860 IBM-861 IBM-863 IBM-865 |
IBM-819 | IBM-1010 IBM-1011 IBM-1012 IBM-1013 IBM-1014 IBM-1015 IBM-1016 IBM-1017 IBM-1018 IBM-1019 |
IBM-1252 |
| IBM-500 | EBCDIC, SB, CECP: Belgium, Canada, Switzerland, Latin-1 |
| IBM-037 | EBCDIC, SB, CECP: USA, Canada, Netherlands |
| IBM-273 | EBCDIC, SB, CECP: Austria, Germany |
| IBM-277 | EBCDIC, SB, CECP: Denmark, Norway |
| IBM-278 | EBCDIC, SB, CECP: Finland, Sweden |
| IBM-280 | EBCDIC, SB, CECP: Italy |
| IBM-284 | EBCDIC, SB, CECP: Spain, Latin America (Spanish) |
| IBM-285 | EBCDIC, SB, CECP: UK |
| IBM-297 | EBCDIC, SB, CECP: France |
| IBM-871 | EBCDIC, SB, CECP: Iceland |
| IBM-850 | IBM-PC Data, SB, MLP 222, Latin-1 countries |
| IBM-437 | IBM-PC Data, SB, PC base, USA and many others |
| IBM-860 | IBM-PC Data, SB, Portugal |
| IBM-861 | IBM-PC Data, SB, Iceland |
| IBM-863 | IBM-PC Data, SB, Canada (French) |
| IBM-865 | IBM-PC Data, SB, Denmark, Norway |
| IBM-819 | ISO 8, SB, CECP: ISO 8859-1 Latin-1 |
| IBM-1010 | ISO 7, SB, France |
| IBM-1011 | ISO 7, SB, Germany |
| IBM-1012 | ISO 7, SB, Italy |
| IBM-1013 | ISO 7, SB, UK |
| IBM-1014 | ISO 7, SB, Spain |
| IBM-1015 | ISO 7, SB, Portugal |
| IBM-1016 | ISO 7, SB, Norway |
| IBM-1017 | ISO 7, SB, Denmark |
| IBM-1018 | ISO 7, SB, Finland, Sweden |
| IBM-1019 | ISO 7, SB, Belgium, Netherlands |
| IBM-1252 | ISO 8, SB, with possible graphics in C1 area, MS Windows Latin-1 |
Others (not in the table):
| IBM-256 | EBCDIC, SB, Netherlands |
| IBM-282 | EBCDIC, SB, CEPG: Portugal (superseded by 037) |
| IBM-293 | EBCDIC, SB, APL (USA) |
| IBM-259 | EBCDIC, SB, Symbols, Set 7 |
| IBM-1047 | EBCDIC, SB, Open Systems |
| IBM-1004 | IBM-PC Data, SB, extended DTP/Windows |
| IBM-1009 | ISO 7, SB, ISO-7; IRV (prior 1992) |
| IBM 367 | ISO 7, SB, ANSI X3.4 ASCII Standard; USA |
| IBM-1051 | ISO 8, SB, HP emulation (for use with Latin-1) |
| IBM-1275 | ISO 8, SB, with possible graphics in C1 area, Apple Latin-1 |
| IBM-1276 | ISO 8, SB, Adobe PS standard encoding |
| IBM-1277 | ISO 8, SB, with possible graphics in C1 area, Adobe PS Latin-1 |
| Host | PC | ISO 8 | Windows |
| IBM-870 | IBM-4948 IBM-852 |
IBM-1250 |
| IBM-870 | EBCDIC, SB, Eastern Europe Latin-2 |
| IBM-4948 | IBM-PC Data, SB, Eastern Europe Latin-2 |
| IBM-852 | IBM-PC Data, SB, Latin-2 Multilingual |
| IBM-1250 | ISO 8, SB, with possible graphics in C1 area, MS Windows |
| Host | PC | ISO 8 | Windows |
| IBM-1025 IBM-1123 IBM-880 |
IBM-4951 IBM-855 IBM-866 |
IBM-1124 IBM-915 |
IBM-1251 |
| IBM-1025 | EBCDIC, SB, Cyrillic Multilingual |
| IBM-1123 | EBCDIC, SB, Cyrillic Ukraine |
| IBM-880 | EBCDIC, SB, Cyrillic Multilingual |
| IBM-4951 | IBM-PC Data, SB, Eastern Europe Cyrillic |
| IBM-855 | IBM-PC Data, SB, Cyrillic |
| IBM-866 | IBM-PC Data, SB, Cyrillic Russian |
| IBM-1124 | ISO 8, SB, Cyrillic Ukraine |
| IBM-915 | ISO 8, SB, ISO 8859-5 Cyrillic |
| IBM-1251 | ISO 8, SB, with possible graphics in C1 area, MS Windows - Cyrillic |
| Host | PC | ISO 8 | Windows |
| IBM-1026 IBM-905 |
IBM-857 | IBM-920 | IBM-1254 |
| IBM-1026 | EBCDIC, SB, Latin-5 |
| IBM-905 | EBCDIC, SB, Latin-3 Multingual (replaced by Latin-5) |
| IBM-857 | IBM-PC Data, SB |
| IBM-920 | ISO 8, SB, ISO 8859-9 Latin-5 |
| IBM-1254 | ISO 8, SB, with possible graphics in C1 area, MS Windows |
| Host | PC | ISO 8 | Windows |
| IBM-9030 IBM-838 |
IBM-9066 IBM-874 |
| IBM-9030 | EBCDIC, SB, Extended SBCS |
| IBM-838 | EBCDIC, SB, Extended SBCS |
| IBM-9066 | IBM-PC Data, SB, Extended SBCS |
| IBM-874 | IBM-PC Data, SB, Extended SBCS |
| Host | PC | ISO 8 | Windows |
| IBM-1097 | IBM-1098 |
| IBM-1097 | EBCDIC, SB |
| IBM-1098 | IBM-PC Data, SB |
| 290 | 1027 | |
|---|---|---|
| 00290 | N/A | Y |
| 01027 | Y | N/A |
| IBM-1027 | EBCDIC, SB, Japanese Latin Host Extended SBCS |
| IBM-290 | EBCDIC, SB, Japanese Katakana Host Extended SBCS |
Japanese MBCS <-> MBCS
| 932 | 942 | 943 | 930 | 939 | 33722 | |
|---|---|---|---|---|---|---|
| 00932 | N/A | N/A | Y | Y | Y | Y |
| 00942 | N/A | N/A | Y | Y | Y | Y |
| 00943 | Y | Y | N/A | Y | Y | Y |
| 05026 | Y | Y | Y | N/A | Y | Y |
| 05035 | Y | Y | Y | Y | N/A | Y |
| 33722 | Y | Y | Y | Y | Y | N/A |
| IBM-930 | EBCDIC, MB, locking shifts, Japanese Katakana-Kanji, Extended SBCS |
| IBM-939 | EBCDIC, MB, locking shifts, Japanese Latin-Kanji, Extended SBCS |
| IBM-942 | IBM-PC Data, MB, Japanese PC Data Mixed, including 1880 UDC, Extended SBCS |
| IBM-943 | IBM-PC Data, MB, Japanese PC Data Mixed for Open Environment |
| IBM33722 | ISO 8, 2022 scheme, IBM EUC, IBMeucJP |
Note:
Others (not in the table):
| IBM-1041 | IBM-PC Data, SB, Extended SBCS |
| IBM-301 | IBM-PC Data, DB, including 1880 UDC |
| IBM-897 | IBM-PC Data, SB |
| IBM-941 | IBM-PC Data, DB, for Open Environment |
| IBM-9145 | ISO 7, DB, Japanese EUC, G3 - JIS X212-1990 |
| IBM-952 | ISO 7, DB, Japanese EUC, G1 - JIS X208-1990, including 940 UDC |
| IBM-5048 | ISO 7, DB, Japanese EUC, G1 - JIS X208-1990, excluding 940 UDC |
| IBM-5049 | ISO 7, DB, Japanese EUC, G1 - JIS X208-1990, excluding 106 IBM, 940 UDC |
| X2081983 | ISO 7, DB, Japanese EUC, G1 - JIS X208-1993 |
| IBM-955 | ISO 7, DB, Japanese TCP |
| IBM-895 | ISO 7, SB, Japanese 7-bit Latin |
| IBM-896 | ISO 7, SB, Japanese 7-bit Katakana, excluding 5 SAA |
| IBM-1350 | ISO 8, 2022 scheme, IBM EUC, JISeucJP |
| IBM-1351 | DBCS PC for Open environment (HP code) |
Japanese Host SBCS/DBCS <-> MBCS
| 290 | 1027 | 300 | 932 | 942 | 943 | 33722 | |
|---|---|---|---|---|---|---|---|
| 00290 | N/A | - | N/A | Y | Y | Y | Y |
| 01027 | - | N/A | N/A | Y | Y | Y | Y |
| 04396 | N/A | N/A | N/A | Y | Y | Y | Y |
| 00932 | Y | Y | Y | N/A | N/A | - | - |
| 00942 | Y | Y | Y | N/A | N/A | - | - |
| 00943 | Y | Y | Y | - | - | N/A | - |
| 33722 | Y | Y | Y | - | - | - | N/A |
| IBM-290 | EBCDIC, SB, Japanese Katakana Extended SBCS |
| IBM-1027 | EBCDIC, SB, Japanese Latin Extended SBCS |
| IBM-300 | EBCDIC, DB, Japanese Latin, including 4370 UDC |
| IBM-942 | IBM-PC Data, MB, including 1880 UDC, Extended SBCS |
| IBM-943 | IBM-PC Data, MB, for Open Environment |
| IBM3372 | ISO 8, 2022 scheme, IBM EUC, IBMeucJP |
Note:
| 949 | 1363 | 933 | 970 | |
|---|---|---|---|---|
| 00949 | Y | Y | Y | Y |
| 01363 | ||||
| 00933 | Y | Y | N/A | Y |
| 00970 | Y | Y | Y | N/A |
| IBM-933 | EBCDIC, MB, locking shifts, including 1880 UDC, Extended SBCS |
| IBM-949 | IBM-PC Data, MB, IBM KS Code, including 1880 UDC |
| IBM-1363 | IBM-PC Data, MB, IBM KS Code, including 1880 UDC |
| IBM-970 | ISO 8, 2022 scheme, IBM EUC, G0, G1 |
Note:
Korean Host SBCS/DBCS <-> MBCS
| 833 | 834 | 949 | 1363 | 970 | |
|---|---|---|---|---|---|
| 00833 | N/A | N/A | Y | Y | |
| 00834 | N/A | N/A | Y | Y | |
| 00949 | Y | Y | N/A | - | |
| 01363 | N/A | ||||
| 00970 | Y | Y | - | N/A |
| IBM-833 | EBCDIC, SB, Extended SBCS |
| IBM-834 | EBCDIC, DB, including 1880 UDC |
| IBM-949 | IBM-PC Data, MB, IBM KS Code, including 1880 UDC |
| IBM-1363 | IBM-PC Data, MB, IBM KS Code, including 1880 UDC |
| IBM-970 | ISO 8, 2022 scheme, IBM EUC, G0, G1 |
Others (not in the table):
| IBM-891 | IBM-PC Data, SB |
| IBM-1088 | IBM-PC Data, SB, IBM KS Code |
| IBM-1040 | IBM-PC Data, SB, Extended SBCS |
| IBM-951 | IBM-PC Data, DB, IBM KS Code, including 1880 UDC |
| IBM-971 | ISO 7, DB, Korea EUC, G1, including 1880 UDC |
| IBM-5067 | ISO 7, DB, Korea EUC, G1, excluding 1880 UDC |
Traditional Chinese MBCS <-> MBCS
| 938 | 948 | 950 | 937 | 964 | |
|---|---|---|---|---|---|
| 00938 | N/A | N/A | Y | Y | Y |
| 00948 | N/A | N/A | Y | Y | Y |
| 00950 | Y | Y | N/A | Y | Y |
| 00937 | Y | Y | Y | N/A | Y |
| 00964 | Y | Y | Y | Y | N/A |
| IBM-937 | EBCDIC, MB, locking shifts, including 6204 UDC, Extended SBCS |
| IBM-948 | IBM-PC Data, MB, including 6204 UDC, Extended SBCS |
| IBM-950 | IBM-PC Data, MB, for IBM BIG-5 |
| IBM-964 | ISO 8, 2022 scheme, IBM EUC, G0, G1, G2 |
Note:
Traditional Chinese Host SBCS/DBCS <-> MBCS
| 037 | 835 | 938 | 948 | 950 | 964 | |
|---|---|---|---|---|---|---|
| 00037 | Y | N/A | Y | Y | Y | Y |
| 00835 | N/A | N/A | Y | Y | Y | Y |
| 00938 | Y | Y | N/A | - | - | - |
| 00948 | Y | Y | - | N/A | - | - |
| 00950 | Y | Y | - | - | N/A | - |
| 00964 | Y | Y | - | - | - | N/A |
| IBM-037 | EBCDIC, SB, CECP: USA, Canada, Netherlands |
| IBM-835 | EBCDIC, DB, including 6204 UDC |
| IBM-948 | IBM-PC Data, MB, including 6204 UDC, Extended SBCS |
| IBM-950 | IBM-PC Data, MB, for IBM BIG-5 |
| IBM-964 | ISO 8, 2022 scheme, IBM EUC, G0, G1, G2 |
Note:
Others (not in table):
| IBM28709 | EBCDIC, SB, Extended SBCS |
| IBM-1043 | IBM-PC Data, SB, Extended SBCS |
| IBM-904 | IBM-PC Data, SB |
| IBM-1114 | IBM-PC Data, SB, IBM BIG-5 |
| IBM-927 | IBM-PC Data, DB, including 6204 UDC |
| IBM-947 | IBM-PC Data, DB, IBM BIG-5 |
| IBM-960 | ISO 7, DB, T-Ch EUC, G1 |
| IBM-961 | ISO 7, fixed triple-byte, T-Ch EUC, G2 |
| IBM-963 | ISO 7, DB, T-Ch TCP |
Simplified Chinese MBCS <-> MBCS
| 1381 | 935 | 1383 | |
|---|---|---|---|
| 01381 | N/A | N/A | Y |
| 00935 | Y | N/A | Y |
| 01383 | Y | Y | N/A |
| IBM-935 | EBCDIC, MB, locking shifts, including 1880 UDC, Extended SBCS |
| IBM-1381 | IBM-PC Data, MB, IBM GB including 1880 UDC, 31 IBM, 5 SAA SB |
| IBM-1383 | ISO 8, 2022 scheme, IBM EUC, G0, G1 |
Simplified Chinese Host SBCS/DBCS <-> MBCS
| 836 | 837 | 1381 | 1383 | 1386 | |
|---|---|---|---|---|---|
| 00836 | N/A | Y | Y | Y | |
| 00837 | N/A | N/A | Y | Y | |
| 01381 | Y | Y | N/A | - | |
| 01383 | Y | Y | - | N/A | |
| 01386 | N/A |
| IBM-836 | EBCDIC, SB, Extended SBCS |
| IBM-837 | EBCDIC, DB, including 1880 UDC |
| IBM-1381 | IBM-PC Data, MB, IBM GB, including 1880 UDC, 31 IBM, 5 SAA SB |
| IBM-1383 | ISO 8, 2022 scheme, IBM EUC, G0, G1 |
| IBM-1386 | IBM-PC Data, MB, IBM GB, including 1880 UDC, 31 IBM, without 5 SAA SB |
Others (not in tables):
| IBM-1115 | IBM-PC Data, SB, IBM GB, including 5 SAA SB char |
| IBM-1042 | IBM-PC Data, SB, Extended SBCS |
| IBM-903 | IBM-PC Data, SB |
| IBM-1380 | IBM-PC Data, DB, IBM GB, including 1880 UDC and 31 IBM |
| IBM-946 | IBM-PC Data, MB, including 1880 UDC, Extended SBCS |
| IBM-5478 | ISO 7, DB, GB, excluding 31 IBM and 1360 UDC |
| IBM-1382 | ISO 7, DB, GB, including 31 IBM and 1360 UDC |
UCS-2
All code pages can be converted to and from UCS-2, which is also known as IBM-1200. You must code "UCS-2" in the invocation of iconv_open. "IBM-1200" is not recognized.
CPPRUT36.DLL
Because UCS-2 can be converted to CPPRUT36.DLL, this implies that all code pages can be converted to CPPRUT36.DLL via UCS-2. CPPRUT36.DLL is also known as IBM-1208, but you must code "CPPRUT36.DLL" in the invocation of iconv_open. "IBM-1208" is not recognized.
![]()
Make Your Program International
Convert Character Coding