PHP: 함수 리턴값의 array입력 관련

jiny92의 이미지

php 생초보입니다.
php 코딩 중에 이상 사항이 있어 원인 및 수정방법에 대해 문의드립니다.

시나리오는
1. 암호화된 email 주소를 DB에서 읽어 복호화 함
2. 복호화된 email 주소를 array에 넣어 return 함
3. return된 결과값을 이용해 인증처리를 수행함
입니다.

pseudo code는

$san_email = $this->aes_decrypt($row['email']); //string을 리턴합니다.
...,
$attributes = array(
            'uid' => array($username),
            'displayName' => array($dec_full_name),
            'email' => array($san_email),
        );
...,
return $attributes;

입니다.

증상입니다.
1.  $this->aes_decrypt()로 얻은 string을 print_r로 출력해보면 모든 email 주소에 대해서 정상 출력됩니다.
2. attributes array도 print_r로 출력하면 정상으로 보입니다.
3. 하지만, 몇몇 email domain에 대해서 return된 값이 오류를 발생시킵니다. 예를 들어, a@naver.com
4. print_r로 출력된 email 주소를 직접입력했을 때는 오류가 발생하지 않습니다. 예를 들어,

//$san_email = $this->aes_decrypt($row['email']); //<-- 대신에
$san_email = "a@naver.com";  //<-- 이렇게 직접 적으면
이하 동일

DB의 charset은 utf8입니다. 어떻게 해결해야 하는지 도움 부탁드립니다.

red10won의 이미지

케릭터셋 문제는 아닌듯

한글 메일주소가 아닌이상 케릭터셋 문제는 아닐겁니다.
깨지는 메일주소원문과 캡쳐결과를 한번 올려보시는게 좋을겁니다