티스토리 뷰

PHP 함수에서 소켓통신을 할 경우,  코드는 정상적으로 작동되는 것 같은데 간혹 특정 페이지나 특정 위치의 내용이 짤리는 경우가 있습니다. 소켓 통신으로 결과를 잘 받았더라도 출력시 중간에 글자가 잘리기 때문에 받는 도중 무언가 문제가 있다고 오해해서 문제 없는 코드만 하염없이 분석하다 지치게 되죠;

이런 경우 인코딩이 EUC-KR 이기 때문에 발생하는 경우가 대부분 입니다.
따라서, 인코딩이 문제가 없다면(EUC-KR 이 아니면) 프로그래밍 코드에 문제라고 보면 되겠죠..

해결 방법은 EUC-KR 보다도 CP949 인코딩을 사용하면 됩니다. CP949 는 EUC-KR 과 완벽히 호환되면서 EUC-KR 이 표현하지 못하는 몇몇 글자들을 표현이 가능합니다.
예를 들어 EUC-KR 인코딩의 내용을 UTF-8 로 변환하여 사용할 경우 아래처럼 CP949 로 지정합니다.

$result = "...";// 소켓 통신으로 받은 결과
$converted = iconv('CP949', 'UTF-8', $result);// iconv 로 CP949 코드를 UTF-8 로 변환

최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함