인코딩 깨질 때

2021. 12. 23. 16:45·Development/PHP

1. DB connect 확인

# DB Connent
$DB = new db4mysql();
$DB -> getConnection();

mysql_query ( 'set names utf8' ); // 추가

인코딩 깨질 때는 EUC-KR 일 수 있으니 확인하기

 

2. 파싱하는 경우, Content-Type 추가해주기(UTF-8)

$strParse	.= "Content-Type: text/html;charset=UTF-8\r\n";

 

3. iconv 함수 사용

# DE(독일어)
$strBody = iconv("ISO-8859-1","utf-8", $strBody);

+

#그래도 깨질 경우, 각각 iconv함수를 사용한다.

$strWrite = iconv("ISO-8859-1","utf-8", $strWrite);
$strTitle = iconv("ISO-8859-1","utf-8", $strTitle);
$strContents = iconv("ISO-8859-1","utf-8", $strContents);

유니코드 변환

$arrHtmlList = iconv("CP949", "UTF-8", $arrHtmlList);

4. 파일 새로 생성(기존 파일 인코딩이 utf8이 아닌 경우)

크롤링한 한글텍스트가 아닌, 수집기 내부 출력문(echo) 한글이 깨질 경우

파일 인코딩이 utf-8이 아니라 깨지는 경우가 있으므로,

이럴 경우에는 파일을 새로 생성한 뒤 기존 코드를 복붙하여 실행해보면

한글이 깨지지않고 정상적으로 출력된다.

 

5. iconv 함수 사용시 글자 잘리는 현상

파싱 시, 한글이 깨져 iconv로 EUC-KR 에서 UTF-8 로 변환해주는 코드를 삽입했는데,

$strHtmlList = iconv("euckr", "utf8", $strHtmlList);

이상하게 다음 코드에서 계속 오류가 나서 다시 출력을 확인해보니 텍스트가 잘리는 경우가 있었다.

 

euckr을 cp949로 변경하면 잘리지않고 잘 출력된다!

$strHtmlList = iconv("CP949", "utf8", $strHtmlList);

 

'Development > PHP' 카테고리의 다른 글

[정규표현식] 정규식 문자열 제거(영문/숫자)  (0) 2021.12.28
정규식 html 태그제거  (0) 2021.12.28
정규식 공백제거(str_replace, preg_replace)  (0) 2021.12.28
[Crawler] post 방식의 json 파싱  (0) 2021.12.23
PHP 인젝션  (0) 2021.12.20
'Development/PHP' 카테고리의 다른 글
  • 정규식 html 태그제거
  • 정규식 공백제거(str_replace, preg_replace)
  • [Crawler] post 방식의 json 파싱
  • PHP 인젝션
곽진돔
곽진돔
Developer
  • 곽진돔
    echo "곽박한 세상";
    곽진돔
  • 전체
    오늘
    어제
    • 분류 전체보기 (184)
      • Development (57)
        • Linux (13)
        • k8s (3)
        • Docker (5)
        • AWS (1)
        • PHP (35)
        • Python (21)
        • Java (1)
        • SpringBoot (4)
        • JavaScript (1)
        • React (8)
        • MySql (19)
        • MongoDB (1)
      • Daily (4)
      • Study (6)
        • TIL (1)
        • license (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
    • 설정
  • 링크

    • github
  • 공지사항

  • 인기 글

  • 태그

    db
    ssh
    CentOS
    IP
    정규표현식
    MySQL
    크롤링
    Java
    Linux
    인코딩
    UTF8
    리눅스
    HTML
    윈도우
    error
    chromedriver
    date
    php
    Selenium
    스프링부트
    react
    springboot
    Shell
    CentOS7
    Python
    docker
    nodejs
    SQL
    리액트
    JavaScript
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
곽진돔
인코딩 깨질 때
상단으로

티스토리툴바