서문
이번 포스팅은 해당 문자의 인코딩을 감지하고 인코딩을 변경해 주는 방법에 대해서 글을 작성해 보도록 하겠습니다.
현재 문자의 인코딩이 무엇인지 알게 되면 손쉽게 인코딩 변경을 통해서 문자가 깨지는 것을 방지 할 수 있어, 해당 문자의 인코딩이 무엇인지 알아보는 것도 중요한 과제 중 하나입니다.
본문
문자 인코딩 감지 방법
$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();
설명
첫 번째 줄 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로 변경해 주는 활용방법입니다.
결론
이번 포스팅을 통해서 작성한 문자열의 인코딩을 찾아내는 방법을 알아보았습니다.
현재 작성한 문자의 인코딩이 무엇인지 파악하는 것은 정말 중요한 요소 중 하나입니다.
현재 인코딩을 잘 파악해서 문자열이 사용자에게 올바르게 표기되도록 주의하시길 바랍니다.
'코딩 > php' 카테고리의 다른 글
[PHP] 전역변수, 완전 전역 ($GLOBALS, $_POST 등) (30) | 2023.01.06 |
---|---|
[PHP] strpos() 문자열 포함 여부 및 문자열 위치 알아내기 (18) | 2023.01.04 |
[PHP] foreach문 반복문 사용하기 (15) | 2022.12.22 |
[PHP/HTML] form태그를 사용하여 다른 페이지로 값 넘겨주기 (hidden/입력 받은 값) (2) | 2022.12.19 |
[PHP] 특정 문자열만 인코딩 변환 시키는 방법 (base64_decode, 한글이 깨질때) (0) | 2022.12.16 |
댓글