문자열이 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년 전 | 4429 | ||
| 2604 | 8개월 전 | 676 | ||
| 2603 | 8개월 전 | 735 | ||
| 2602 | 8개월 전 | 649 | ||
| 2601 |
|
8개월 전 | 672 | |
| 2600 |
|
8개월 전 | 581 | |
| 2599 | 8개월 전 | 809 | ||
| 2598 | 8개월 전 | 604 | ||
| 2597 |
다케미카코
|
9개월 전 | 757 | |
| 2596 | 9개월 전 | 854 | ||
| 2595 |
|
9개월 전 | 446 | |
| 2594 | 9개월 전 | 608 | ||
| 2593 |
만두먹고또먹고
|
9개월 전 | 938 | |
| 2592 | 9개월 전 | 614 | ||
| 2591 | 9개월 전 | 620 | ||
| 2590 | 9개월 전 | 690 | ||
| 2589 |
|
9개월 전 | 760 | |
| 2588 | 9개월 전 | 479 | ||
| 2587 | 9개월 전 | 797 | ||
| 2586 | 9개월 전 | 645 | ||
| 2585 | 9개월 전 | 511 | ||
| 2584 | 9개월 전 | 579 | ||
| 2583 | 9개월 전 | 499 | ||
| 2582 | 9개월 전 | 644 | ||
| 2581 | 9개월 전 | 602 | ||
| 2580 |
만두먹고또먹고
|
9개월 전 | 517 | |
| 2579 |
|
9개월 전 | 666 | |
| 2578 | 9개월 전 | 649 | ||
| 2577 | 9개월 전 | 629 | ||
| 2576 | 10개월 전 | 563 | ||
| 2575 |
이슈DEV
|
10개월 전 | 993 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기