매개변수를 전달하는 URL 특수 문자 Solution_javascript 기술

WBOY
풀어 주다: 2016-05-16 18:37:37
원래의
1279명이 탐색했습니다.

16진수 값
1. URL 매체는 공백 +
2. URL의 공백은 숫자로 인코딩하거나
/ 디렉토리와 하위 디렉토리를 구분합니다. >4. ? 실제 URL과 매개변수를 분리하시겠습니까?
5. %는 특수 문자 %를 지정합니다.
6. URL에 지정된 매개변수 사이의 구분 기호입니다. = URL에 지정된 매개변수의 값 =


해결책:


replace() 메서드 str.replace("-","!")를 직접 사용하는 경우 첫 번째로 일치하는 문자만 바꿉니다. 그리고 str.replace(/-/g,"!")는 일치하는 모든 문자를 바꿀 수 있습니다(g는 전역 플래그입니다). replace()
js의 대체 문자 변수는 다음과 같습니다.

data2=data2.replace(/%/g,"%");
data2=data2.replace(/#/g,"#");

data2=data2.replace(/&/ g,"&");


그 외 정보. . . 참고용으로만 사용하세요. . .

URL을 사용하여 매개변수를 전달할 때 일부 매개변수 또는 중국어 이름(또는 특수 문자 포함)이 포함된 URL 주소가 전달되는 경우가 많으며 백그라운드 처리 중에 변환 오류가 발생합니다. 일부 배달 페이지에서는 GB2312가 사용되고, 수신 페이지에서는 UTF8이 사용되므로 수신된 매개변수가 원래 매개변수와 일치하지 않을 수 있습니다. 서버측 urlEncode 함수를 사용하여 인코딩된 URL은 클라이언트측 java의 encodeURI 함수를 사용하여 인코딩된 URL과 다른 결과를 갖습니다.

Java 인코딩 텍스트에는 3가지 디코딩 기능인 unescape, decodeURI, decodeURIComponent에 해당하는 escape, encodeURI, encodeURIComponent의 3가지 기능이 포함됩니다.

Java의 인코딩 방법:

escape() 방법: ISO 라틴 문자 세트를 사용하여 지정된 문자열을 인코딩합니다. 모든 공백, 구두점, 특수 문자 및 기타 비ASCII 문자는 %xx 형식의 문자 인코딩으로 변환됩니다(xx는 문자 집합 테이블에 있는 문자 인코딩의 16진수와 동일합니다). 예를 들어 공백 문자에 해당하는 인코딩은 입니다. 이스케이프 해제 방법은 그 반대입니다. 이 방법으로 인코딩되지 않는 문자: @ * /



encodeURI() 메서드: UTF-8 인코딩 형식을 사용하여 URI 문자열을 이스케이프 형식 문자열로 변환합니다. 이 방법으로 인코딩되지 않는 문자: ! @ # $& * ( ) = : / ?

encodeURIComponent() 메서드: UTF-8 인코딩 형식을 사용하여 URI 문자열을 이스케이프 형식 문자열로 변환합니다. encodeURI()와 비교하여 이 메서드는 / 및 기타 문자와 같은 더 많은 문자를 인코딩합니다. 따라서 문자열에 URI의 여러 부분이 포함되어 있으면 이 방법을 사용하여 인코딩할 수 없습니다. 그렇지 않으면 / 문자가 인코딩된 후 URL에 오류가 표시됩니다. 이 방법으로 인코딩되지 않는 문자: ! * ( )


따라서 중국어 문자열의 경우 문자열 인코딩 형식을 UTF-8 형식으로 변환하지 않으려는 경우(예: 원본 페이지와 대상 페이지의 문자 집합이 동일한 경우) 탈출을 사용해야합니다. 페이지가 GB2312 또는 기타 인코딩이고 매개변수를 허용하는 페이지가 UTF-8로 인코딩된 경우 encodeURI 또는 ​​encodeURIComponent를 사용해야 합니다.

또한 java1.5 이후에 encodeURI/encodeURIComponent가 도입되었으며, java1.0에서는 escape가 가능했습니다.

1. 매개변수 전달 시 encodeURIComponent를 사용해야 합니다. 그래야 결합된 URL이 #과 같은 특수 문자로 인해 잘리지 않습니다.

예: < 언어="java">write('">종료');

2. URL 점프를 수행할 때 encodeURI를 전체적으로 사용할 수 있습니다 예: Location.href=encodeURI("

http://cang.baidu.com/do/s?word

=Baidu&ct=21");

3.js에서 데이터를 사용할 때 이스케이프를 사용할 수 있습니다 예: 컬렉션의 역사 기록입니다.

4. Escape가 0~255 이외의 유니코드 값을 인코딩하면 %u**** 형식이 출력됩니다. 그 외의 경우 Escape, encodeURI, encodeURIComponent의 인코딩 결과는 동일합니다.

가장 일반적으로 사용되는 것은 중국어, 한국어 및 기타 특수 문자를 utf-8 형식의 URL 인코딩으로 변환하는 encodeURIComponent입니다. 따라서 매개변수를 백그라운드로 전달하기 위해 encodeURIComponent를 사용해야 하는 경우에는 다음이 필요합니다. utf-8을 지원하기 위한 백그라운드 디코딩 (양식의 인코딩 방식은 현재 페이지의 인코딩 방식과 동일합니다.)

Escape로 인코딩되지 않은 문자는 69개입니다: *, ,-,.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿