2011-11-07 20 views

Trả lời

41

Trong PHP, iconv extension không có chức năng liệt kê tất cả các mã hóa có sẵn.

Các mã hóa khả dụng tùy thuộc vào thư viện iconv sử dụng nội bộ. Ví dụ: libiconv. Trang web đó cũng chứa danh sách các bộ ký tự mà bạn có thể sử dụng.

Bạn cũng có thể kết nối với máy chủ của bạn thông qua SSH và thực hiện lệnh sau:

$ iconv -l 

này sẽ cung cấp cho bạn danh sách có sẵn trên hệ thống rằng nếu PHP được biên dịch chống lại các thư viện tương tự như các tiện ích dòng lệnh .

Nếu bạn không chắc chắn nếu một bộ ký tự cụ thể có sẵn, bạn cần kiểm tra lỗi bằng cách thăm dò với iconv.


Danh sách mã hóa iconv và bí danh (tháng 2 năm 2013; 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

và cách thực hiện điều này trên cửa sổ? – EaterOfCode

+1

@EaterOfCorpses: Nếu bạn đã cài đặt biểu tượng trên cửa sổ, bạn cũng có thể có được danh sách chính xác với cùng lệnh. Tôi đặt một danh sách được tạo ra ở đây: https://gist.github.com/4188459 – hakre

+0

yeah:/nhưng tôi chỉ có phần mở rộng trong PHP, nhưng cảm ơn cho danh sách: D nó thực sự hữu ích – EaterOfCode

2

Nếu sử dụng iconv glibc của, danh sách các mã hóa và bí danh thường là trong:

/usr/lib/gconv/gconv-modules 

Nếu bằng cách sử dụng Debian multiarch, thay vào đó nó sẽ là:

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

Lưu ý rằng các bí danh cho ASCII, UTF-8, UTF-16BE, UTF-16LE, UTF-32BEUTF-32LE không được liệt kê ở đó.

0

Như đã đề cập, trong PHP, iconv extension không có chức năng liệt kê tất cả các mã hóa sẵn có.

Dòng lệnh, tuy nhiên, không có tùy chọn như vậy. Điều này có thể được sử dụng để tạo chức năng bạn đang tìm kiếm:

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

Bạn có thể dùng thử here.

Các vấn đề liên quan