>  기사  >  백엔드 개발  >  PHP는 텍스트 인코딩을 자동으로 인식하고 변환합니다.

PHP는 텍스트 인코딩을 자동으로 인식하고 변환합니다.

*文
*文원래의
2017-12-27 14:03:491616검색

PHP는 어떻게 텍스트 인코딩을 자동으로 식별하고 변환하나요? 이 기사에서는 PHP가 자동으로 텍스트 인코딩을 식별하고 이를 대상 인코딩으로 변환하는 방법을 주로 소개하며, 현재 인코딩에 대한 PHP의 판단과 해당 인코딩 변환 구현 기술을 포함합니다. 그것이 모두에게 도움이 되기를 바랍니다.

자세한 내용은 다음과 같습니다.

PHP에서 페이지를 처리할 때 iconv나 mb_convert 등의 함수를 사용하여 문자 집합을 변환하는데, 사실 여기에는 전제가 있습니다. 즉, 올바른 변환을 수행하려면 인코딩 입력과 출력이 무엇인지 미리 알아야 합니다.

대부분의 변환은 gbk와 utf-8 사이에서 이루어지지만 변환 개체의 인코딩을 모른다면 Google은 UTF8과 GBK의 인코딩을 쉽게 식별할 수 있는 safeEncoding 기능을 개발했습니다. 이 함수는 어느 정도 매우 정확하지만 좀 더 복잡한 환경에서는 사용하기가 그리 쉽지 않습니다. 아래에서는 GBK와 UTF-8 인코딩의 차이점을 결합하고 정규식을 사용하여 UTF-8 인코딩을 결정하고 mb_convert_encoding을 사용합니다. 변환하는 함수 중국에서는 기본적으로 GBK와 UTF-8이 더 많이 사용되므로 이 함수는 이 두 가지 인코딩을 자동으로 변환합니다.


/**
* @ string 需要转换的文字
* @ encoding 目标编码
**/
function detect_encoding($string,$encoding = 'gbk'){
 $is_utf8 = preg_match('%^(?:[\x09\x0A\x0D\x20-\x7E]| [\xC2-\xDF][\x80-\xBF]| \xE0[\xA0-\xBF][\x80-\xBF] | [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}  | \xED[\x80-\x9F][\x80-\xBF] | \xF0[\x90-\xBF][\x80-\xBF]{2} | [\xF1-\xF3][\x80-\xBF]{3} | \xF4[\x80-\x8F][\x80-\xBF]{2} )*$%xs', $string);
 if($is_utf8 && $encoding == 'utf8'){
  return $string;
 }elseif($is_utf8){
  return mb_convert_encoding($string, $encoding, "UTF-8");
 }else{
  return mb_convert_encoding($string, $encoding, 'gbk,gb2312,big5');
 }
}

관련 권장 사항:

php 인코딩 변환 - 문자 인코딩 변환

php의 URL 액세스를 트리거하는 잘못된 트랜스코딩 방법

utf-8-PHP 잘못된 코드의 지속적인 문제 - 부분적인 잘못된 코드

위 내용은 PHP는 텍스트 인코딩을 자동으로 인식하고 변환합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.