PHP에서 유니코드 이스케이프 시퀀스를 UTF-8 문자로 디코딩
질문: 내장 함수가 있습니까? PHP에서는 "u00ed"와 같은 유니코드 이스케이프 시퀀스를 해당 UTF-8 문자로 디코딩할 수 있습니다. "í"?
답변: PHP는 이 작업에 대한 직접적인 기능을 제공하지 않지만 정규식과 문자 인코딩 기능을 조합하여 사용하면 원하는 결과를 얻을 수 있습니다.
$str = preg_replace_callback('/\\u([0-9a-fA-F]{4})/', function ($match) { return mb_convert_encoding(pack('H*', $match[1]), 'UTF-8', 'UCS-2BE'); }, $str);
이 코드는 정규식을 사용하여 유니코드 이스케이프 시퀀스를 일치시키고 다음을 사용하여 해당 UTF-8 문자로 바꿉니다. mb_convert_encoding().
이스케이프 시퀀스가 UTF-16 형식인 경우:
$str = preg_replace_callback('/\\u([0-9a-fA-F]{4})/', function ($match) { return mb_convert_encoding(pack('H*', $match[1]), 'UTF-8', 'UTF-16BE'); }, $str);
이 수정된 코드는 이스케이프 시퀀스가 UTF-16으로 인코딩된 것으로 가정합니다. , 특정 프로그래밍 언어 및 JSON 표기법에서 일반적으로 사용됩니다.
위 내용은 PHP에서 유니코드 이스케이프 시퀀스를 UTF-8로 어떻게 디코딩할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!