2014-02-12 1 views
0

URL 인코딩을 ISO-8859-1 URL로 반환해야하지만 PHP로 어떻게 처리합니까?ISO-8859-1을 사용하여 urlencode하는 방법은 무엇입니까?

urlencode('åäö')을 실행하면 %C3%A5%C3%A4%C3%B6이 반환됩니다. 내가 원하는 건 %E5%E4%F6입니다.

http://quick-encoder.com/url/은 두 가지 형식을 모두 반환 할 수 있습니다.

+0

urlencoding 및 iso 인코딩은 완전히 다른 것입니다. urlencoding은 7 비트 인코딩 (ASCII)이고 iso는 8 비트 인코딩을 의미합니다. 문자열을 iso로 인코딩 된 문자열로 전환하는 간단한 기능은 없으며 기술적 인 관점에서 이해가되지 않습니다. 변환하기 전에 어떤 인코딩을 사용하는지에 따라 다릅니다. – arkascha

답변

4

urlencode 앞에 utf8_decode 함수를 사용하면 트릭을 수행해야합니다.

urlencode(utf8_decode('åäö')); 

This도 확인하십시오.

+0

'UTF-8'입력 데이터에서는 잘 작동하지만 다른 유형의 입력 인코딩에서는 작동하지 않습니다. 나는 이걸 언급하고있다. – hek2mgl

3

입력 문자열을 인코딩하기 전에 입력 문자열을 ISO-8859-1으로 코드 변환해야합니다. 당신은 그것을 위해 iconv()을 사용할 수 있습니다 : 당신의 지정된 출력에서 ​​

$r = urlencode(iconv('UTF-8', 'ISO-8859-1', 'åäö')); 
echo $r; // %E5%E4%F6 

을, 나는 소스 파일이 UTF-8 인코딩, 또는 적어도 예를 들어 문자열 åäö을한다고 가정합니다. 동적 데이터로 작업하는 경우 입력 인코딩을 알아야합니다.

0

여기서해야 할 일은 원하는 형식으로 잘 형식화 된 문자열을 인코딩하는 것입니다.

<?php 
$str = "åäö"; 
echo urlencode(mb_convert_encoding($str, "ISO-8859-1", "UTF-8")); 
// %E5%E4%F6 
?> 

건배 : 그래서 먼저이 같은 mb_convert_encoding()로 변환 할 수 있습니다.

관련 문제