PHP에서 문자열을 자르는 작업은 일상적이다. 그런데 한글, 일본어, 중국어 같은 멀티바이트 문자를 다룰 때 substr()을 썼다가 문자가 깨지는 경험을 해봤을까? 대부분의 개발자는 이 문제가 왜 발생하는지, substr()과 mb_substr()의 정확한 차이가 뭔지 모른 채 인터넷에서 찾은 답을 그냥 적용한다. 이번에는 바이트 단위와 문자 단위의 차이···
PHP에서 데이터베이스나 배열의 한글 데이터를 JSON으로 변환할 때 이상한 문자열로 깨져나오는 현상을 경험해봤을까? 대부분의 개발자들은 json_encode()를 쓸 때 기본값만 사용하다가 한글이 유니코드 이스케이프 시퀀스(uXXXX 형태)로 나타나는 문제를 마주친다. 다만 이게 단순히 '표시 문제'인지 '실제 데이터 손상'인지, 어디서부터 인코딩을 맞춰···