현재 위치: > 최신 기사 목록> PHP URL 매개 변수에서 중국어의 문제를 해결하는 방법

PHP URL 매개 변수에서 중국어의 문제를 해결하는 방법

gitbox 2025-06-28

1. 문제 정의

PHP 프로그래밍에서는 종종 URL 매개 변수로 한자를 통과해야합니다. 그러나 한자는 영어 캐릭터보다 더 많은 바이트를 차지하기 때문에 통과하는 동안 문제가 발생합니다. 이 문제를 해결하려면 한자가 구체적으로 인코딩되어야합니다.

2. 문제 해결책

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 응용 프로그램이 자주 한자를 사용하는 경우 PHP의 기본 인코딩을 수정하여 차량 코드를 피할 수 있습니다. Header () 함수를 사용하여 PHP 파일의 헤더에서 문자 인코딩을 설정하십시오.

 <span class="fun">헤더 ( &#39;content-type : text/html; charset = utf-8&#39;);</span>

이 설정 후 모든 출력은 UTF-8으로 인코딩되며 중국어가 URL 매개 변수로 전달 되더라도 차량 코드가 없습니다.

php.ini 파일의 인코딩 설정이 올바른지 확인하십시오.

또한 php.ini 파일의 다음 세 매개 변수가 올바르게 구성되도록해야합니다.

 default_charset = 'UTF-8'
 mbstring.internal_encoding = 'UTF-8'
 mbstring.http_input = 'UTF-8'

이 매개 변수는 각각 기본 인코딩, 내부 인코딩 및 HTTP 입력 인코딩을 설정하는 데 사용됩니다. 올바른 구성은 중국어의 문제를 효과적으로 피할 수 있습니다.

3. 요약

PHP로 프로그래밍 할 때는 URL 매개 변수에서 한자를 처리하는 것이 중요합니다. URL 인코딩 및 디코딩을 통해 PHP 기본 인코딩을 수정하고 php.ini 파일을 올바르게 설정하면 발굴 된 코드 문제를 효과적으로 피할 수 있습니다. 이러한 방법을 마스터하면 PHP 응용 프로그램이 중국어가 포함 된 URL 매개 변수를 올바르게 처리 할 수 ​​있습니다.