PHP

mb_detect_encoding 문자열의 캐릭터셋을 확인
해당 문자열의 캐릭터셋을 모르는 경우에는 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
)