2010-03-01 3 views
0

내 웹 사이트에서 다음 스크립트를 사용하여 페이지 네이션 "이전 - 이전"기능을 만듭니다. 사실 Dreamweaver의 코드입니다. 스크립트는 url을 사용하여 일부 값을 얻은 다음 다시 작성합니다. IE7과 IE8의 결과 url은 읽을 수없는 문자를 포함하고 결국 페이지가 제대로 작동하지 않습니다.IE에서 그리스어 URL 문자의 문제

$queryString_met = ""; 
    if (!empty($_SERVER['QUERY_STRING'])) { 
     $params = explode("&", $_SERVER['QUERY_STRING']); 
     $newParams = array(); 
     foreach ($params as $param) { 
     if (stristr($param, "pageNum_met") == false && 
      stristr($param, "totalRows_met") == false) { 
      array_push($newParams, $param); 
     } 
     } 
     if (count($newParams) != 0) { 
     $queryString_met = "&" . htmlentities(implode("&", $newParams)); 
     } 
    } 
    $queryString_met = sprintf("&totalRows_met=%d%s", $totalRows_met, $queryString_met); 

........ 

<a href="<?php printf("%s?pageNum_met=%d%s", $currentPage, max(0, $pageNum_met - 1), $queryString_met); ?>"> << </a> 

코드의 어느 부분에서이 문제가 발생하는지 알 수 없습니다. 저를 도와주세요? Modify->Page Properties 메뉴로

이동하고 대화에 Title/Encoding를 선택하고 거기에 서유럽 인코딩을 선택합니다

답변

2

를 htmlentities (내파 ("&", $ newParams)); 당신이 charset 인수를 지정하지 않는 경우

htmlentities

은 '당신의 문자열 그리스에 대한 그들은 확실히 원 ISO-8859-1에 추측, 일반적으로 불필요하게, 당신의 문자열에 ASCII가 아닌 모든 바이트를 인코딩하고 그러지 마라. (잘하면, 사이트의 모든 것을 UTF-8로 사용하고 있기를 바랍니다.) 을 대신 사용하십시오. 비 ASCII 문자 만 남기고 실제로 인코딩해야하는 코드 만 인코딩합니다.

그러나이 문제가 전혀 발생하지 않도록하려면 URL에 비 ASCII 문자를 직접 사용해야합니다. 이것은 정말로 신뢰할 수 없습니다. 하지마. 인코딩되지 않은 비 ASCII 문자는 URI에서 전혀 유효하지 않습니다. % - 인코딩되어야합니다 (예 : urlencode 사용). IRI는 브라우저가 자동으로 UTF-8 인코딩하고 % 인코딩하여 URI로 변환 할 수있는 비 ASCII 문자를 허용하지만 IE는 (항상) 그렇게하지 않습니다.

는 [또한 쿼리 문자열을 처리 할 수있는 스크립트는 대상 이름, 그들과 함께 시작뿐만 아니라 사람들을 포함하는 모든 값 실패합니다.]

1

나는 Dreamweaver에서 해당 페이지에 대한 문서 인코딩을 선택해야합니다 생각합니다.

편집 :

Also try to encode your urls.

+0

@Sarfraz이 답변 주셔서 감사합니다. 내 페이지에도 그리스 문자가 포함되어 있으며 데이터베이스에서 utf-8 인코딩을 사용하고 있으므로 페이지 인코딩을 서유럽 언어로 바꾸면 다른 많은 문제가 발생합니다. 이 문제를 해결할 수있는 유일한 방법입니까? – zekia

+0

@ktsixit : 아니오 유일한 해결책은 아니며, URL을 암호화하려고합니다. 업데이트 된 답변 plz를 참조하십시오. ? 1) -  <<  Sarfraz

+0

나는 다음하지만 불행히도 제대로 작동하지 않는 시도 $ queryString_met); ?> 제안 사항이 있으십니까?? 주석 편집기 코드에 매우 친절하지 – zekia