PHP 폼전송에서 한글깨질때 해결방법

웹개발을 하다보면 다양한 환경에서 한글이 깨지는걸 볼수가 있습니다. 특히 DB관련 연동을 할때 DB서버쪽 캐릭터셋, 웹페이지 캐릭터셋, 문서 인코딩이 안맞아서 머리가 아픈경우를 볼수가 있는데 이번 포스팅에서는 단순하게 폼전송시 한글이 깨지는 부분에 대해서 말씀을 드려보자 합니다.

 

PHP 폼전송시 한글이 왜 깨질까?

한글이 왜 깨지는지에 대해서는 말하기전에 우선 문서 인코딩을 통일 해주시기 바랍니다. 요즘 나오는 IDE 툴은 일괄적으로 문서 인코딩을 바꿔줄수가 있는데요. 사용법등을 잘 모르신다면 메모장에서 인코딩을 확인 후 저장 해 주시면 됩니다.

 

메모장으로 소스파일을 열고 다른이름으로 저장을 하시면 아래와 같이 인코딩을 확인하실 수 있습니다. 인코딩을 왠만하

면 UTF-8 로 통일을 해 주시는걸 추천드립니다.

 

 

해당 캐릭터셋에 자세히 이야기 할건 없을듯 하고, EUC-KR과 UTF-8이 있는데 범용적으로 사용되는 규격이라고 말씀드리면 간단하게 이해가 되실겁니다.

 

제가 개발하고 있는 소스를 간단히 말씀드리면, login.php, loginAction.php 두개로 로그인 화면에서 로그인 버튼을 누르면 loginAction.php에서 로그인 여부를 확인 후 index.php로 보내거나 다시 login.php로 보내는 액션을 구현하려 합니다.

 

그런데 loginAction.php에서 비밀번호가 맞지 않습니다 문구를 띄우는데 한글이 깨지더군요.

 

 

문서 인코딩은 다 맞추었고, 뭐가 문제일까 생각해보니 페이지 내부의 소스 인코딩을 맞추어야 되는데 그걸 빼먹어서 소스를 한줄 추가하였더니 한글이 제대로 나오기 시작하였습니다.

 

문서 인코딩을 꼭 해주셔야 한글이 안깨지니 해당 부분은 까먹지 말고 넣어주시기 바랍니다.

 

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />