이번 포스팅은 해당 문자의 인코딩을 감지하고 감지한 인코딩에서 내가 원하는 인코딩으로 변경해 주는 방법에 대해서 알아보도록 하겠습니다.
현재 문자의 인코딩이 무엇인지 알게 되면 손쉽게 인코딩 변경을 통해서 문자가 깨지는 것을 방지할 수 있어,
해당 문자의 인코딩이 무엇인지 알아보는 것도 중요한 과제 중 하나입니다.
예제 코드
$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);
위의 형식으로 감지하고 싶은 문자열과 뒤에 인코딩 배열을 넣어줍니다.
mb_detect_encoding 함수를 사용하여 문자열의 인코딩이 인코딩 배열 안에 있는지 판단해 줍니다.
- 마지막 줄
console.log를 사용하여 결과 값을 확인해 줍니다.
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"로 변경해 주는 코드입니다.
해당 코드를 사용하면, 다른 인코딩 문자열도 일괄되게 동일한 인코딩으로 처리해 줄 수 있습니다.
결론
이번 포스팅을 통해서 작성한 문자열의 인코딩을 찾아내는 방법을 알아보았습니다.
현재 작성한 문자의 인코딩이 무엇인지 파악하는 것은 정말 중요한 요소 중 하나입니다.
인코딩이 맞지 않아 DB에 데이터가 저장이 되지 않거나, 원하는 형태로 저장되지 않아 불편을 겪을 수 있습니다.
또한 여러 나라의 언어를 지원하는 페이지라면 나라마다 언어가 다르기에 올바른 인코딩을 사용하는 것이 중요하겠습니다.
현재 인코딩을 잘 파악해서 문자열이 사용자에게 올바르게 표기되도록 주의하시길 바랍니다.
'코딩' 카테고리의 다른 글
[PHP] foreach문 반복문 사용하기 (15) | 2022.12.22 |
---|---|
[jQuery] 값을 입력하지 않았을 때 경고창 띄우기 (alert) (2) | 2022.12.20 |
[PHP/HTML] form태그를 사용하여 다른 페이지로 값 넘겨주기 (hidden) (2) | 2022.12.19 |
[CSS] 글자와 글자 사이 간격 속성 letter-spacing (1) | 2022.12.17 |
[PHP] 특정 문자열만 인코딩 변환 시키는 방법 (base64_decode, 한글이 깨질때) (0) | 2022.12.16 |
댓글