728x90
반응형
홈페이지에서 MySQL에 저장된 한글이 깨져 나오는 문제는 문자 인코딩 설정 불일치 때문에 발생하는 경우가 대부분입니다.
✅ 한글 깨짐 해결 순서 (필수 체크 4단계)
1️⃣ MySQL 테이블/컬럼 인코딩 확인
SHOW CREATE TABLE 테이블명;
결과에서 CHARSET=utf8 또는 CHARSET=utf8mb4인지 확인하세요.
한글이 제대로 나오려면 utf8 또는 utf8mb4로 설정되어야 합니다.
✏️ 변경 방법 (필요 시)
ALTER TABLE 테이블명 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
2️⃣ 웹 페이지의 HTML 헤더 확인
HTML <head> 안에 다음이 있는지 확인하세요:
<meta charset="UTF-8">
없으면 반드시 추가하세요. (EUC-KR이면 그것에 맞춰야 하며, UTF-8로 통일하는 것을 권장합니다.)
3️⃣ DB 연결 시 인코딩 설정
PHP 사용 중이라면, mysqli 또는 mysql 연결 후에 다음을 추가합니다:
mysqli_query($conn, "SET NAMES 'utf8'");
또는 PDO 사용 시:
$pdo = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'user', 'pass');
utf8mb4를 사용하는 경우에는 'utf8'을 'utf8mb4'로 바꿔주세요.
4️⃣ DB 자체 설정 확인 (my.cnf)
my.cnf 또는 my.ini 설정 파일에서 아래 설정을 확인하거나 추가:
[mysqld] character-set-server=utf8mb4 collation-server=utf8mb4_general_ci [client] default-character-set=utf8mb4 [mysql] default-character-set=utf8mb4
MySQL을 재시작해야 반영됩니다:
sudo systemctl restart mysql
🧪 테스트 팁
header("Content-Type: text/html; charset=UTF-8"); echo "한글 출력 테스트";
이렇게 한글이 깨지지 않으면 웹 서버와 PHP 인코딩은 정상입니다.
✅ 예시 정리
위치설정 예시
HTML 헤더 | <meta charset="UTF-8"> |
PHP 연결 코드 | mysqli_query($conn, "SET NAMES 'utf8'"); |
DB 테이블 인코딩 | utf8 또는 utf8mb4 |
my.cnf 설정 | character-set-server=utf8mb4 등 |
728x90
반응형
'컴퓨터와 인터넷' 카테고리의 다른 글
KOEI 삼국지 시리즈 (1) | 2025.07.23 |
---|---|
AMD CPU 모델명 의미 (0) | 2025.05.19 |
인텔 CPU 모델명 의미 (0) | 2025.05.19 |
가성비 PC 견적 (0) | 2025.05.11 |
win10에서 win7 컴퓨터로 공유가 안돼 못들어가는 경우 해결방법 (0) | 2025.04.23 |