본문 바로가기
코딩/php

[PHP] 문자 인코딩 감지, 문자 charset 확인 방법

by 우월한하루 2022. 12. 16.
728x90
반응형

서문

 

이번 포스팅은 해당 문자의 인코딩을 감지하고 인코딩을 변경해 주는 방법에 대해서 글을 작성해 보도록 하겠습니다.

 

현재 문자의 인코딩이 무엇인지 알게 되면 손쉽게 인코딩 변경을 통해서 문자가 깨지는 것을 방지 할 수 있어, 해당 문자의 인코딩이 무엇인지 알아보는 것도 중요한 과제 중 하나입니다.

 

본문

문자 인코딩 감지 방법

$account_addr1 = mb_convert_encoding($account_addr1, "EUC-KR", "UTF-8");
$encodelist = array('ASCII','UTF-8','UTF-16LE','WINDOWS-1252','EUC-KR');
$test_en = mb_detect_encoding($account_addr1, $encodelist);
echo"<script>console.log('현재 문자 인코딩: ".$test_en."');</script>";
exit();

 

 

728x90

 

반응형

 

 

설명

 

첫 번째 줄 mb_convert_encoding를 이용하여 인코딩을 "EUC-KR"로 변경합니다.

mb_convert_encoding 사용법은 이전 포스팅을 참조해주세요.

 

$encodelist로 배열을 선언해서 인코딩 종류를 적어줍니다.

감지된 인코딩이 있다면 이 배열에서 찾아서 출력해 주는 역할을 합니다.

 

mb_detect_encoding("감지하고 싶은 문자열", $encodelist);

위의 형식으로 감지하고 싶은 문자열과 뒤에 인코딩 배열을 넣어줍니다.

 

php에서 콘솔을 찍으려면 echo로 스크립트를 적어줘야 콘솔 찍는 게 가능합니다.

 

콘솔 결과
콘솔 결과

 

이렇게 콘솔을 찍어서 확인하면 현재 인코딩이 무엇인지 판단가능합니다.

이것을 이용해서 받아오는 문자열의 인코딩을 변수에 넣고 바로바로 자신이 사용하는 인코딩으로 변경이 가능합니다.

 

활용방법

//$account_addr1 -> 받아오는 문자열

$encoding = mb_detect_encoding($account_addr1, $encodelist); //받아온 문자의 인코딩

//받아온 문자열의 인코딩을 "EUC-KR"로 변경
$change_encoding = mb_convert_encoding($account_addr1, "EUC-KR", $encoding);

 

간단하게는 위와 같이 활용이 가능합니다.

받아온 문자열의 인코딩을 파악하고 자동으로 문자열의 인코딩을 EUC-KR로 변경해 주는 활용방법입니다.

 

결론

이번 포스팅을 통해서 작성한 문자열의 인코딩을 찾아내는 방법을 알아보았습니다.

현재 작성한 문자의 인코딩이 무엇인지 파악하는 것은 정말 중요한 요소 중 하나입니다.

현재 인코딩을 잘 파악해서 문자열이 사용자에게 올바르게 표기되도록 주의하시길 바랍니다.

728x90
반응형

댓글