PHP

    mb_detect_encoding 문자열의 캐릭터셋을 확인
    • 조회수 5,334
    • 작성일 2015-09-14
    •  
    해당 문자열의 캐릭터셋을 모르는 경우에는 mb_detect_encoding() 함수를사용 하면 된다.

    string mb_detect_encoding ( string $str [, mixed $encoding_list = mb_detect_order() [, bool $strict = false ]] )


    <?

    $xml_string = file_get_contents($_SERVER['DOCUMENT_ROOT'].'/data.xml');
    $enc = mb_detect_encoding($xml_string, array('EUC-KR', 'UTF-8', 'shift_jis', 'CN-GB'));
    if($enc != 'UTF-8'){
        $xml_string = iconv($enc, 'UTF-8', $xml_string);  //본인 사이트에 맞는 인코딩으로 변경
    }
    $xml = simplexml_load_string($xml_string);

    ?>


    해당 함수에서 사용되는 캐릭터셋의 종류는 mb_list_encodings() 함수를 쓰면 배열로 리턴되어 알 수 있다. 

    함수의 결과
    Array
    (
        [0] => pass
        [1] => auto
        [2] => wchar
        [3] => byte2be
        [4] => byte2le
        [5] => byte4be
        [6] => byte4le
        [7] => BASE64
        [8] => UUENCODE
        [9] => HTML-ENTITIES
        [10] => Quoted-Printable
        [11] => 7bit
        [12] => 8bit
        [13] => UCS-4
        [14] => UCS-4BE
        [15] => UCS-4LE
        [16] => UCS-2
        [17] => UCS-2BE
        [18] => UCS-2LE
        [19] => UTF-32
        [20] => UTF-32BE
        [21] => UTF-32LE
        [22] => UTF-16
        [23] => UTF-16BE
        [24] => UTF-16LE
        [25] => UTF-8
        [26] => UTF-7
        [27] => UTF7-IMAP
        [28] => ASCII
        [29] => EUC-JP
        [30] => SJIS
        [31] => eucJP-win
        [32] => SJIS-win
        [33] => CP51932
        [34] => JIS
        [35] => ISO-2022-JP
        [36] => ISO-2022-JP-MS
        [37] => Windows-1252
        [38] => ISO-8859-1
        [39] => ISO-8859-2
        [40] => ISO-8859-3
        [41] => ISO-8859-4
        [42] => ISO-8859-5
        [43] => ISO-8859-6
        [44] => ISO-8859-7
        [45] => ISO-8859-8
        [46] => ISO-8859-9
        [47] => ISO-8859-10
        [48] => ISO-8859-13
        [49] => ISO-8859-14
        [50] => ISO-8859-15
        [51] => ISO-8859-16
        [52] => EUC-CN
        [53] => CP936
        [54] => HZ
        [55] => EUC-TW
        [56] => BIG-5
        [57] => EUC-KR
        [58] => UHC
        [59] => ISO-2022-KR
        [60] => Windows-1251
        [61] => CP866
        [62] => KOI8-R
        [63] => ArmSCII-8
    )