2011-11-07 13 views

回答

41

在PHP中,iconv extension没有列出所有可用编码的功能。

可用的编码取决于内部使用的库iconv。例如有libiconv。该网站还包含您可以使用的字符集列表。

您还可以通过SSH连接到服务器并执行以下命令:

$ iconv -l 

这会给你的系统上可用的列表中,如果PHP是针对同一个库作为命令行实用程序编译。

如果您不确定某个特定的字符集是否可用,您需要通过iconv进行探测来检查错误。


名单的iconv编码和别名(2013年2月; gist):

ANSI_X3.4-1968 ANSI_X3.4-1986 ASCII CP367 IBM367 ISO-IR-6 ISO646-US ISO_646.IRV:1991 US US-ASCII CSASCII 
UTF-8 
ISO-10646-UCS-2 UCS-2 CSUNICODE 
UCS-2BE UNICODE-1-1 UNICODEBIG CSUNICODE11 
UCS-2LE UNICODELITTLE 
ISO-10646-UCS-4 UCS-4 CSUCS4 
UCS-4BE 
UCS-4LE 
UTF-16 
UTF-16BE 
UTF-16LE 
UTF-32 
UTF-32BE 
UTF-32LE 
UNICODE-1-1-UTF-7 UTF-7 CSUNICODE11UTF7 
UCS-2-INTERNAL 
UCS-2-SWAPPED 
UCS-4-INTERNAL 
UCS-4-SWAPPED 
C99 
JAVA 
CP819 IBM819 ISO-8859-1 ISO-IR-100 ISO8859-1 ISO_8859-1 ISO_8859-1:1987 L1 LATIN1 CSISOLATIN1 
ISO-8859-2 ISO-IR-101 ISO8859-2 ISO_8859-2 ISO_8859-2:1987 L2 LATIN2 CSISOLATIN2 
ISO-8859-3 ISO-IR-109 ISO8859-3 ISO_8859-3 ISO_8859-3:1988 L3 LATIN3 CSISOLATIN3 
ISO-8859-4 ISO-IR-110 ISO8859-4 ISO_8859-4 ISO_8859-4:1988 L4 LATIN4 CSISOLATIN4 
CYRILLIC ISO-8859-5 ISO-IR-144 ISO8859-5 ISO_8859-5 ISO_8859-5:1988 CSISOLATINCYRILLIC 
ARABIC ASMO-708 ECMA-114 ISO-8859-6 ISO-IR-127 ISO8859-6 ISO_8859-6 ISO_8859-6:1987 CSISOLATINARABIC 
ECMA-118 ELOT_928 GREEK GREEK8 ISO-8859-7 ISO-IR-126 ISO8859-7 ISO_8859-7 ISO_8859-7:1987 ISO_8859-7:2003 CSISOLATINGREEK 
HEBREW ISO-8859-8 ISO-IR-138 ISO8859-8 ISO_8859-8 ISO_8859-8:1988 CSISOLATINHEBREW 
ISO-8859-9 ISO-IR-148 ISO8859-9 ISO_8859-9 ISO_8859-9:1989 L5 LATIN5 CSISOLATIN5 
ISO-8859-10 ISO-IR-157 ISO8859-10 ISO_8859-10 ISO_8859-10:1992 L6 LATIN6 CSISOLATIN6 
ISO-8859-11 ISO8859-11 ISO_8859-11 
ISO-8859-13 ISO-IR-179 ISO8859-13 ISO_8859-13 L7 LATIN7 
ISO-8859-14 ISO-CELTIC ISO-IR-199 ISO8859-14 ISO_8859-14 ISO_8859-14:1998 L8 LATIN8 
ISO-8859-15 ISO-IR-203 ISO8859-15 ISO_8859-15 ISO_8859-15:1998 LATIN-9 
ISO-8859-16 ISO-IR-226 ISO8859-16 ISO_8859-16 ISO_8859-16:2001 L10 LATIN10 
KOI8-R CSKOI8R 
KOI8-U 
KOI8-RU 
CP1250 MS-EE WINDOWS-1250 
CP1251 MS-CYRL WINDOWS-1251 
CP1252 MS-ANSI WINDOWS-1252 
CP1253 MS-GREEK WINDOWS-1253 
CP1254 MS-TURK WINDOWS-1254 
CP1255 MS-HEBR WINDOWS-1255 
CP1256 MS-ARAB WINDOWS-1256 
CP1257 WINBALTRIM WINDOWS-1257 
CP1258 WINDOWS-1258 
850 CP850 IBM850 CSPC850MULTILINGUAL 
862 CP862 IBM862 CSPC862LATINHEBREW 
866 CP866 IBM866 CSIBM866 
MAC MACINTOSH MACROMAN CSMACINTOSH 
MACCENTRALEUROPE 
MACICELAND 
MACCROATIAN 
MACROMANIA 
MACCYRILLIC 
MACUKRAINE 
MACGREEK 
MACTURKISH 
MACHEBREW 
MACARABIC 
MACTHAI 
HP-ROMAN8 R8 ROMAN8 CSHPROMAN8 
NEXTSTEP 
ARMSCII-8 
GEORGIAN-ACADEMY 
GEORGIAN-PS 
KOI8-T 
CP154 CYRILLIC-ASIAN PT154 PTCP154 CSPTCP154 
KZ-1048 RK1048 STRK1048-2002 CSKZ1048 
MULELAO-1 
CP1133 IBM-CP1133 
ISO-IR-166 TIS-620 TIS620 TIS620-0 TIS620.2529-1 TIS620.2533-0 TIS620.2533-1 
CP874 WINDOWS-874 
VISCII VISCII1.1-1 CSVISCII 
TCVN TCVN-5712 TCVN5712-1 TCVN5712-1:1993 
ISO-IR-14 ISO646-JP JIS_C6220-1969-RO JP CSISO14JISC6220RO 
JISX0201-1976 JIS_X0201 X0201 CSHALFWIDTHKATAKANA 
ISO-IR-87 JIS0208 JIS_C6226-1983 JIS_X0208 JIS_X0208-1983 JIS_X0208-1990 X0208 CSISO87JISX0208 
ISO-IR-159 JIS_X0212 JIS_X0212-1990 JIS_X0212.1990-0 X0212 CSISO159JISX02121990 
CN GB_1988-80 ISO-IR-57 ISO646-CN CSISO57GB1988 
CHINESE GB_2312-80 ISO-IR-58 CSISO58GB231280 
CN-GB-ISOIR165 ISO-IR-165 
ISO-IR-149 KOREAN KSC_5601 KS_C_5601-1987 KS_C_5601-1989 CSKSC56011987 
EUC-JP EUCJP EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE CSEUCPKDFMTJAPANESE 
MS_KANJI SHIFT-JIS SHIFT_JIS SJIS CSSHIFTJIS 
CP932 
ISO-2022-JP CSISO2022JP 
ISO-2022-JP-1 
ISO-2022-JP-2 CSISO2022JP2 
CN-GB EUC-CN EUCCN GB2312 CSGB2312 
GBK 
CP936 MS936 WINDOWS-936 
GB18030 
ISO-2022-CN CSISO2022CN 
ISO-2022-CN-EXT 
HZ HZ-GB-2312 
EUC-TW EUCTW CSEUCTW 
BIG-5 BIG-FIVE BIG5 BIGFIVE CN-BIG5 CSBIG5 
CP950 
BIG5-HKSCS:1999 
BIG5-HKSCS:2001 
BIG5-HKSCS BIG5-HKSCS:2004 BIG5HKSCS 
EUC-KR EUCKR CSEUCKR 
CP949 UHC 
CP1361 JOHAB 
ISO-2022-KR CSISO2022KR 
CP856 
CP922 
CP943 
CP1046 
CP1124 
CP1129 
CP1161 IBM-1161 IBM1161 CSIBM1161 
CP1162 IBM-1162 IBM1162 CSIBM1162 
CP1163 IBM-1163 IBM1163 CSIBM1163 
DEC-KANJI 
DEC-HANYU 
437 CP437 IBM437 CS 
PC8CODEPAGE437 
CP737 
CP775 IBM775 CSPC775BALTIC 
852 CP852 IBM852 CSPCP852 
CP853 
855 CP855 IBM855 CSIBM855 
857 CP857 IBM857 CSIBM857 
CP858 
860 CP860 IBM860 CSIBM860 
861 CP-IS CP861 IBM861 CSIBM861 
863 CP863 IBM863 CSIBM863 
CP864 IBM864 CSIBM864 
865 CP865 IBM865 CSIBM865 
869 CP-GR CP869 IBM869 CSIBM869 
CP1125 
EUC-JISX0213 
SHIFT_JISX0213 
ISO-2022-JP-3 
BIG5-2003 
ISO-IR-230 TDS565 
ATARI ATARIST 
RISCOS-LATIN1 
+0

以及如何在Windows上做到这一点? – EaterOfCode

+1

@EaterOfCorpses:如果你在windows上安装了iconv,你可以使用相同的命令获得确切的列表。我把这样一个创建的列表放在这里:https://gist.github.com/4188459 – hakre

+0

是啊:/但我只有在PHP中的扩展名,但感谢列表:D它真的有帮助 – EaterOfCode

2

如果使用GLIBC的的iconv,编码和别名列表通常是:

/usr/lib/gconv/gconv-modules 

如果使用Debian多元化,它将代替:

/usr/lib/x86_64-linux-gnu/gconv/gconv-modules 

请注意,ASCII,UTF-8,UTF-16BE,UTF-16LE,UTF-32BEUTF-32LE的别名不在此处列出。

0

如前所述,在PHP中,iconv extension没有列出所有可用编码的功能。

但是,命令行确实有这样的选项。这可以用来创建你要找的功能:

function iconv_list_encodings() { 
    return preg_split('#//\n#', shell_exec('iconv -l'), -1, PREG_SPLIT_NO_EMPTY); 
} 

你可以尝试一下here

相关问题