PHP 프로그래밍에서는 종종 URL 매개 변수로 한자를 통과해야합니다. 그러나 한자는 영어 캐릭터보다 더 많은 바이트를 차지하기 때문에 통과하는 동안 문제가 발생합니다. 이 문제를 해결하려면 한자가 구체적으로 인코딩되어야합니다.
URL 인코딩은 URL의 특수 문자를 URL 사양을 준수하는 형식으로 변환 할 수 있습니다. PHP에서는 urlencode () 함수를 사용하여 문자열을 인코딩하여 모든 비 알파럼 성 문자가 %XX 형태로 대체되도록 할 수 있습니다.
예를 들어, URL은 문자열 "중국어"를 인코딩하여 다음 코드를 사용할 수 있습니다.
$encoded_str = urlencode('중국인');
echo $encoded_str; // %E4%B8%AD%E6%96%87
위의 코드는 "중국어"를 "%E4%B8%AD%E6%96%87"으로 변환합니다. 인코딩 된 문자열을 해독 해야하는 경우 urldecode () 함수를 사용할 수 있습니다. 예를 들어:
$decoded_str = urldecode('%E4%B8%AD%E6%96%87');
echo $decoded_str; // 중국인
또한 http_build_query () 함수는 배열을 URL 매개 변수로 변환 할 수 있습니다. 여러 키 값 쌍이있는 경우 전체 URL로 결합 할 수 있습니다.
$data = array('name' => '중국인', 'age' => 18);
$query_string = http_build_query($data);
echo $query_string; // name=%E4%B8%AD%E6%96%87&age=18
PHP 응용 프로그램이 자주 한자를 사용하는 경우 PHP의 기본 인코딩을 수정하여 차량 코드를 피할 수 있습니다. Header () 함수를 사용하여 PHP 파일의 헤더에서 문자 인코딩을 설정하십시오.
<span class="fun">헤더 ( 'content-type : text/html; charset = utf-8');</span>
이 설정 후 모든 출력은 UTF-8으로 인코딩되며 중국어가 URL 매개 변수로 전달 되더라도 차량 코드가 없습니다.
또한 php.ini 파일의 다음 세 매개 변수가 올바르게 구성되도록해야합니다.
default_charset = 'UTF-8'
mbstring.internal_encoding = 'UTF-8'
mbstring.http_input = 'UTF-8'
이 매개 변수는 각각 기본 인코딩, 내부 인코딩 및 HTTP 입력 인코딩을 설정하는 데 사용됩니다. 올바른 구성은 중국어의 문제를 효과적으로 피할 수 있습니다.
PHP로 프로그래밍 할 때는 URL 매개 변수에서 한자를 처리하는 것이 중요합니다. URL 인코딩 및 디코딩을 통해 PHP 기본 인코딩을 수정하고 php.ini 파일을 올바르게 설정하면 발굴 된 코드 문제를 효과적으로 피할 수 있습니다. 이러한 방법을 마스터하면 PHP 응용 프로그램이 중국어가 포함 된 URL 매개 변수를 올바르게 처리 할 수 있습니다.