Iconv Encoding List And PHP Usage

By | April 22, 2008

Iconv functions are often used in PHP when you have problems with character encoding. When you have non-latin chars in the text you work with, you might have problems with storing them, writing into database, etc. It becomes useful when you use several different encodings and when you need to store or output some text into a single place. So let’s go to PHP.net and take a look at all the functions that are related to iconv. It’s a pity, but you can’t find the list of encodings there. Just some examples are located under user contributed notes. But what to do if you need to have the list of encodings, to choose some to use? Just use the command line, with the following command:

iconv -l 

Let me paste the command output here:

437
500
500V1
850
851
852
855
856
857
860
861
862
863
864
865
866
866NAV
869
874
904
1026
1046
1047
8859_1
8859_2
8859_3
8859_4
8859_5
8859_6
8859_7
8859_8
8859_9
10646-1:1993
10646-1:1993/UCS4
ANSI_X3.4-1968
ANSI_X3.4-1986
ANSI_X3.4
ANSI_X3.110-1983
ANSI_X3.110
ARABIC
ARABIC7
ARMSCII-8
ASCII
ASMO-708
ASMO_449
BALTIC
BIG-5
BIG-FIVE
BIG5-HKSCS
BIG5
BIG5HKSCS
BIGFIVE
BS_4730
CA
CN-BIG5
CN-GB
CN
CP-AR
CP-GR
CP-HU
CP037
CP038
CP273
CP274
CP275
CP278
CP280
CP281
CP282
CP284
CP285
CP290
CP297
CP367
CP420
CP423
CP424
CP437
CP500
CP737
CP775
CP813
CP819
CP850
CP851
CP852
CP855
CP856
CP857
CP860
CP861
CP862
CP863
CP864
CP865
CP866
CP866NAV
CP868
CP869
CP870
CP871
CP874
CP875
CP880
CP891
CP903
CP904
CP905
CP912
CP915
CP916
CP918
CP920
CP922
CP930
CP932
CP933
CP935
CP936
CP937
CP939
CP949
CP950
CP1004
CP1026
CP1046
CP1047
CP1070
CP1079
CP1081
CP1084
CP1089
CP1124
CP1125
CP1129
CP1132
CP1133
CP1160
CP1161
CP1162
CP1163
CP1164
CP1250
CP1251
CP1252
CP1253
CP1254
CP1255
CP1256
CP1257
CP1258
CP1361
CP10007
CPIBM861
CSA7-1
CSA7-2
CSASCII
CSA_T500-1983
CSA_T500
CSA_Z243.4-1985-1
CSA_Z243.4-1985-2
CSA_Z243.419851
CSA_Z243.419852
CSDECMCS
CSEBCDICATDE
CSEBCDICATDEA
CSEBCDICCAFR
CSEBCDICDKNO
CSEBCDICDKNOA
CSEBCDICES
CSEBCDICESA
CSEBCDICESS
CSEBCDICFISE
CSEBCDICFISEA
CSEBCDICFR
CSEBCDICIT
CSEBCDICPT
CSEBCDICUK
CSEBCDICUS
CSEUCKR
CSEUCPKDFMTJAPANESE
CSGB2312
CSHPROMAN8
CSIBM037
CSIBM038
CSIBM273
CSIBM274
CSIBM275
CSIBM277
CSIBM278
CSIBM280
CSIBM281
CSIBM284
CSIBM285
CSIBM290
CSIBM297
CSIBM420
CSIBM423
CSIBM424
CSIBM500
CSIBM851
CSIBM855
CSIBM856
CSIBM857
CSIBM860
CSIBM863
CSIBM864
CSIBM865
CSIBM866
CSIBM868
CSIBM869
CSIBM870
CSIBM871
CSIBM880
CSIBM891
CSIBM903
CSIBM904
CSIBM905
CSIBM918
CSIBM922
CSIBM930
CSIBM932
CSIBM933
CSIBM935
CSIBM937
CSIBM939
CSIBM943
CSIBM1026
CSIBM1124
CSIBM1129
CSIBM1132
CSIBM1133
CSIBM1160
CSIBM1161
CSIBM1163
CSIBM1164
CSIBM11621162
CSISO4UNITEDKINGDOM
CSISO10SWEDISH
CSISO11SWEDISHFORNAMES
CSISO14JISC6220RO
CSISO15ITALIAN
CSISO16PORTUGESE
CSISO17SPANISH
CSISO18GREEK7OLD
CSISO19LATINGREEK
CSISO21GERMAN
CSISO25FRENCH
CSISO27LATINGREEK1
CSISO49INIS
CSISO50INIS8
CSISO51INISCYRILLIC
CSISO58GB1988
CSISO60DANISHNORWEGIAN
CSISO60NORWEGIAN1
CSISO61NORWEGIAN2
CSISO69FRENCH
CSISO84PORTUGUESE2
CSISO85SPANISH2
CSISO86HUNGARIAN
CSISO88GREEK7
CSISO89ASMO449
CSISO90
CSISO92JISC62991984B
CSISO99NAPLPS
CSISO103T618BIT
CSISO111ECMACYRILLIC
CSISO121CANADIAN1
CSISO122CANADIAN2
CSISO139CSN369103
CSISO141JUSIB1002
CSISO143IECP271
CSISO150
CSISO150GREEKCCITT
CSISO151CUBA
CSISO153GOST1976874
CSISO646DANISH
CSISO2022CN
CSISO2022JP
CSISO2022JP2
CSISO2022KR
CSISO2033
CSISO5427CYRILLIC
CSISO5427CYRILLIC1981
CSISO5428GREEK
CSISO10367BOX
CSISOLATIN1
CSISOLATIN2
CSISOLATIN3
CSISOLATIN4
CSISOLATIN5
CSISOLATIN6
CSISOLATINARABIC
CSISOLATINCYRILLIC
CSISOLATINGREEK
CSISOLATINHEBREW
CSKOI8R
CSKSC5636
CSMACINTOSH
CSNATSDANO
CSNATSSEFI
CSN_369103
CSPC8CODEPAGE437
CSPC775BALTIC
CSPC850MULTILINGUAL
CSPC862LATINHEBREW
CSPCP852
CSSHIFTJIS
CSUCS4
CSUNICODE
CSWINDOWS31J
CWI-2
CWI
DEC-MCS
DEC
DIN_66003
DK
DS2089
DS_2089
E13B
EBCDIC-AT-DE-A
EBCDIC-AT-DE
EBCDIC-BE
EBCDIC-BR
EBCDIC-CA-FR
EBCDIC-CP-AR1
EBCDIC-CP-AR2
EBCDIC-CP-BE
EBCDIC-CP-CA
EBCDIC-CP-CH
EBCDIC-CP-DK
EBCDIC-CP-ES
EBCDIC-CP-FI
EBCDIC-CP-FR
EBCDIC-CP-GB
EBCDIC-CP-GR
EBCDIC-CP-HE
EBCDIC-CP-IS
EBCDIC-CP-IT
EBCDIC-CP-NL
EBCDIC-CP-NO
EBCDIC-CP-ROECE
EBCDIC-CP-SE
EBCDIC-CP-TR
EBCDIC-CP-US
EBCDIC-CP-WT
EBCDIC-CP-YU
EBCDIC-CYRILLIC
EBCDIC-DK-NO-A
EBCDIC-DK-NO
EBCDIC-ES-A
EBCDIC-ES-S
EBCDIC-ES
EBCDIC-FI-SE-A
EBCDIC-FI-SE
EBCDIC-FR
EBCDIC-GREEK
EBCDIC-INT
EBCDIC-INT1
EBCDIC-IS-FRISS
EBCDIC-IT
EBCDIC-JP-E
EBCDIC-JP-KANA
EBCDIC-PT
EBCDIC-UK
EBCDIC-US
EBCDICISFRISS
ECMA-114
ECMA-118
ECMA-128
ECMA-CYRILLIC
ELOT_928
ES2
EUC-CN
EUC-JISX0213
EUC-JP-MS
EUC-JP
EUC-KR
EUC-TW
EUCCN
EUCJP-MS
EUCJP-OPEN
EUCJP-WIN
EUCJP
EUCTW
GB13000
GB18030
GBK
GB_1988-80
GB_198880
GEORGIAN-ACADEMY
GEORGIAN-PS
GOST_19768-74
GOST_19768
GOST_1976874
GREEK-CCITT
GREEK7-OLD
GREEK8
HP-ROMAN8
IBM-856
IBM-922
IBM-930
IBM-932
IBM-933
IBM-935
IBM-937
IBM-939
IBM-943
IBM-1046
IBM-1047
IBM-1124
IBM-1129
IBM-1132
IBM-1133
IBM-1160
IBM-1161
IBM-1162
IBM-1163
IBM-1164
IBM256
IBM367
IBM437
IBM775
IBM813
IBM819
IBM848
IBM850
IBM852
IBM862
IBM866NAV
IBM874
IBM875
IBM912
IBM915
IBM916
IBM920
IBM1004
IBM1046
IBM1047
IBM1089
IBM1162
IEC_P27-1
IEC_P271
INIS-8
INIS-CYRILLIC
ISIRI-3342
ISIRI3342
ISO-2022-CN-EXT
ISO-2022-CN
ISO-2022-JP-2
ISO-2022-JP-3
ISO-2022-JP
ISO-2022-KR
ISO-8859-1
ISO-8859-2
ISO-8859-3
ISO-8859-4
ISO-8859-5
ISO-8859-6
ISO-8859-7
ISO-8859-8
ISO-8859-9
ISO-8859-10
ISO-8859-11
ISO-8859-13
ISO-8859-14
ISO-8859-15
ISO-8859-16
ISO-10646
ISO-10646/UCS2
ISO-10646/UCS4
ISO-10646/UTF-8
ISO-10646/UTF8
ISO-CELTIC
ISO-IR-4
ISO-IR-6
ISO-IR-8-1
ISO-IR-9-1
ISO-IR-10
ISO-IR-11
ISO-IR-14
ISO-IR-15
ISO-IR-16
ISO-IR-17
ISO-IR-18
ISO-IR-19
ISO-IR-21
ISO-IR-25
ISO-IR-27
ISO-IR-37
ISO-IR-49
ISO-IR-50
ISO-IR-51
ISO-IR-54
ISO-IR-55
ISO-IR-57
ISO-IR-60
ISO-IR-61
ISO-IR-69
ISO-IR-84
ISO-IR-85
ISO-IR-86
ISO-IR-88
ISO-IR-89
ISO-IR-90
ISO-IR-92
ISO-IR-98
ISO-IR-99
ISO-IR-100
ISO-IR-101
ISO-IR-103
ISO-IR-109
ISO-IR-110
ISO-IR-111
ISO-IR-121
ISO-IR-122
ISO-IR-126
ISO-IR-127
ISO-IR-138
ISO-IR-139
ISO-IR-141
ISO-IR-143
ISO-IR-144
ISO-IR-148
ISO-IR-150
ISO-IR-151
ISO-IR-153
ISO-IR-155
ISO-IR-156
ISO-IR-157
ISO-IR-166
ISO-IR-179
ISO-IR-193
ISO-IR-197
ISO-IR-199
ISO-IR-203
ISO-IR-209
ISO-IR-226
ISO646-CA
ISO646-CA2
ISO646-CN
ISO646-CU
ISO646-DE
ISO646-DK
ISO646-ES
ISO646-ES2
ISO646-FI
ISO646-FR
ISO646-FR1
ISO646-GB
ISO646-HU
ISO646-IT
ISO646-JP-OCR-B
ISO646-JP
ISO646-KR
ISO646-NO
ISO646-NO2
ISO646-PT
ISO646-PT2
ISO646-SE
ISO646-SE2
ISO646-US
ISO646-YU
ISO2022CNEXT
ISO6937
ISO8859-1
ISO8859-2
ISO8859-3
ISO8859-4
ISO8859-5
ISO8859-6
ISO8859-7
ISO8859-8
ISO8859-9
ISO8859-10
ISO8859-11
ISO8859-13
ISO8859-14
ISO8859-15
ISO8859-16
ISO88591
ISO88592
ISO88593
ISO88594
ISO88595
ISO88596
ISO88597
ISO88598
ISO88599
ISO885910
ISO885911
ISO885913
ISO885914
ISO885915
ISO885916
ISO_646.IRV:1991
ISO_2033-1983
ISO_2033
ISO_5427-EXT
ISO_5427
ISO_5427:1981
ISO_5427EXT
ISO_5428
ISO_5428:1980
ISO_6937-2
ISO_6937-2:1983
ISO_6937
ISO_6937:1992
ISO_8859-1
ISO_8859-1:1987
ISO_8859-2
ISO_8859-2:1987
ISO_8859-3
ISO_8859-3:1988
ISO_8859-4
ISO_8859-4:1988
ISO_8859-5
ISO_8859-5:1988
ISO_8859-6
ISO_8859-6:1987
ISO_8859-7
ISO_8859-7:1987
ISO_8859-7:2003
ISO_8859-8
ISO_8859-8:1988
ISO_8859-9
ISO_8859-9:1989
ISO_8859-10
ISO_8859-10:1992
ISO_8859-14
ISO_8859-14:1998
ISO_8859-15
ISO_8859-15:1998
ISO_8859-16
ISO_8859-16:2001
ISO_9036
ISO_10367-BOX
ISO_10367BOX
ISO_69372
JIS_C6220-1969-RO
JIS_C6229-1984-B
JIS_C62201969RO
JIS_C62291984B
JOHAB
JS
JUS_I.B1.002
KOI-7
KOI-8
KOI8-R
KOI8-T
KOI8-U
KOI8
KOI8U
L1
L2
L3
L4
L5
L6
L7
L8
L10
LATIN-9
LATIN-GREEK-1
LATIN-GREEK
LATIN7
LATIN8
LATIN10
MAC-CYRILLIC
MAC-IS
MAC-SAMI
MAC-UK
MAC
MACCYRILLIC
MACIS
MACUK
MACUKRAINIAN
MS-ANSI
MS-ARAB
MS-CYRL
MS-EE
MS-GREEK
MS-HEBR
MS-MAC-CYRILLIC
MS-TURK
MS932
MS936
MSCP949
MSCP1361
MSMACCYRILLIC
MSZ_7795.3
MS_KANJI
NATS-DANO
NATS-SEFI
NC_NC0010
NC_NC00-10
NC_NC00-10:81
NF_Z_62-010
NF_Z_62-010_(1973)
NF_Z_62-010_1973
NF_Z_62010
NF_Z_62010_1973
NS_4551-1
NS_4551-2
NS_45511
NS_45512
OS2LATIN1
OSF00010001
OSF00010002
OSF00010003
OSF00010004
OSF00010005
OSF00010006
OSF00010007
OSF00010008
OSF00010009
OSF0001000A
OSF00010020
OSF00010100
OSF00010101
OSF00010102
OSF00010104
OSF00010105
OSF00010106
OSF00030010
OSF0004000A
OSF0005000A
OSF05010001
OSF100201A4
OSF100201A8
OSF100201B5
OSF100201F4
OSF100203B5
OSF1002011C
OSF1002011D
OSF1002035D
OSF1002035E
OSF1002035F
OSF1002036B
OSF1002037B
OSF10010001
OSF10020025
OSF10020111
OSF10020115
OSF10020116
OSF10020118
OSF10020122
OSF10020129
OSF10020352
OSF10020354
OSF10020357
OSF10020359
OSF10020360
OSF10020364
OSF10020365
OSF10020366
OSF10020367
OSF10020370
OSF10020387
OSF10020388
OSF10020396
OSF10020402
OSF10020417
PT154
R8
RK1048
RUSCII
SEN_850200_B
SEN_850200_C
SHIFT-JIS
SHIFT_JIS
SHIFT_JISX0213
SJIS-OPEN
SJIS-WIN
SJIS
SS636127
STRK1048-2002
ST_SEV_358-88
T.61-8BIT
T.61
T.618BIT
TCVN-5712
TCVN
TCVN5712-1
TCVN5712-1:1993
TIS-620
TIS620-0
TIS620.2529-1
TIS620.2533-0
TIS620
TS-5881
TSCII
UCS-2
UCS-2BE
UCS-2LE
UCS-4
UCS-4BE
UCS-4LE
UHC
UJIS
UNICODEBIG
UNICODELITTLE
US-ASCII
UTF-7
UTF-16
UTF-16BE
UTF-16LE
UTF-32
UTF-32BE
UTF-32LE
UTF7
UTF16
UTF16BE
UTF16LE
UTF32
UTF32BE
UTF32LE
VISCII
WCHAR_T
WIN-SAMI-2
WINBALTRIM
WINDOWS-31J
WINDOWS-874
WINDOWS-936
WINDOWS-1250
WINDOWS-1251
WINDOWS-1252
WINDOWS-1253
WINDOWS-1254
WINDOWS-1255
WINDOWS-1256
WINDOWS-1257
WINDOWS-1258
WINSAMI2
WS2
YU

Now all you need is just to select one of them that suits your needs and use them. Note, that if you try to use a wrong encoding, you won’t get any result, but won’t also get any error messages. So be careful when selecting encodings from the list.

In order to use iconv in PHP, you should check your configure line and recompile PHP if necessary. It should look like:

And especially iconv section:

If you don’t have all of this all you need is just to recompile PHP with –with-iconv