문자열이 UTF인지 EUC-KR인지 확인하는 방법
가끔 외부 json이나 xml 데이터를 가져올때, 캐릭터셋 문제로 고민한 적이 많았는데,
mb_check_encoding 함수를 사용하면 간단하게 해결~
$charSet = mb_check_encoding($string, "EUC-KR");
if($charSet){
//EUC-KR 임
}
댓글 4개
브러운아이
7년 전
감사합니다.
7년 전
감사합니다
방구석기타리스트
7년 전
아래. 함수도 유용 해요...^^)
--------------------------------------------------------------------------------
해당 문자열의 캐릭터셋을 모르는 경우에는 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
)
--------------------------------------------------------------------------------
해당 문자열의 캐릭터셋을 모르는 경우에는 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
)
7년 전
감사함니다ㅎㅁㅎ
게시판 목록
그누보드5 팁자료실
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|
| 공지 | 3년 전 | 4442 | ||
| 2574 | 10개월 전 | 562 | ||
| 2573 | 10개월 전 | 939 | ||
| 2572 |
두리삼촌v
|
10개월 전 | 612 | |
| 2571 | 10개월 전 | 560 | ||
| 2570 | 10개월 전 | 602 | ||
| 2569 |
두리삼촌v
|
10개월 전 | 640 | |
| 2568 |
두리삼촌v
|
10개월 전 | 669 | |
| 2567 |
두리삼촌v
|
10개월 전 | 465 | |
| 2566 |
두리삼촌v
|
10개월 전 | 446 | |
| 2565 | 11개월 전 | 743 | ||
| 2564 | 11개월 전 | 674 | ||
| 2563 | 11개월 전 | 477 | ||
| 2562 | 11개월 전 | 1032 | ||
| 2561 |
|
11개월 전 | 678 | |
| 2560 | 11개월 전 | 922 | ||
| 2559 | 11개월 전 | 661 | ||
| 2558 |
|
11개월 전 | 507 | |
| 2557 | 11개월 전 | 659 | ||
| 2556 | 11개월 전 | 960 | ||
| 2555 | 11개월 전 | 1342 | ||
| 2554 | 11개월 전 | 758 | ||
| 2553 |
|
11개월 전 | 751 | |
| 2552 | 11개월 전 | 680 | ||
| 2551 | 11개월 전 | 869 | ||
| 2550 | 11개월 전 | 769 | ||
| 2549 |
|
11개월 전 | 722 | |
| 2548 | 11개월 전 | 1034 | ||
| 2547 | 11개월 전 | 677 | ||
| 2546 | 12개월 전 | 1208 | ||
| 2545 | 12개월 전 | 666 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기