해결 방법은 다음과 같습니다.
1. JS에서 중국어 매개변수를 두 번 변환합니다
var login_name = document.getElementById("loginname").value
로그인_이름 = encodeURI(로그인_이름)
로그인_이름 = encodeURI(로그인_이름)
2. 서버 측에서 매개변수 디코딩
String loginName = ParamUtil.getString(request, "login_name")
loginName = java.net.URLDecoder.decode(loginName,"UTF-8")
URL을 사용하여 매개변수를 전달할 때 중국어 이름이나 URL 주소가 포함된 일부 매개변수가 전달되는 경우가 많으며 백그라운드 처리 중에 변환 오류가 발생합니다. 일부 배달 페이지에서는 GB2312가 사용되고, 수신 페이지에서는 UTF8이 사용되므로 수신된 매개변수가 원래 매개변수와 일치하지 않을 수 있습니다. 서버측 urlEncode 함수를 사용하여 인코딩된 URL과 클라이언트측 javascript의 encodeURI 함수를 사용하여 인코딩된 URL 간에 결과가 다릅니다.
자바스크립트 인코딩 방법:
escape() 메서드:
ISO 라틴 문자 세트를 사용하여 지정된 문자열을 인코딩합니다. 모든 공백, 구두점, 특수 문자 및 기타 비ASCII 문자는 %xx 형식의 문자 인코딩으로 변환됩니다(xx는 문자 집합 테이블에 있는 문자 인코딩의 16진수와 동일합니다). 예를 들어 공백 문자에 해당하는 인코딩은 입니다. 이스케이프 해제 방법은 그 반대입니다. 이 방법으로 인코딩되지 않는 문자: @ * /
gb2312로 인코딩된 경우 이스케이프를 사용할 수 있지만 encodeURIComponent를 사용할 수 없습니다. 그렇지 않으면 왜곡됩니다.
이스케이프 사용 방법: http://www.jb51.net/w3school/jsref/jsref_escape.htm
영어 설명: MSDN JScript 참조: 이스케이프 메서드는 [인수]의 내용을 포함하는 문자열 값(유니코드 형식)을 반환합니다. 모든 공백, 구두점, 악센트 문자 및 기타 비ASCII 문자는 %xx 인코딩으로 대체됩니다. , 여기서 xx는 문자를 나타내는 16진수에 해당합니다. 예를 들어 공백은 "
으로 반환됩니다. Edge Core Javascript 가이드: escape 및 unescape 함수를 사용하면 문자열을 인코딩하고 디코딩할 수 있습니다. unescape 함수는 지정된 16진수 인코딩 값에 대한 ASCII 문자열을 반환합니다. >
encodeURI() 메서드: UTF-8 인코딩 형식을 사용하여 URI 문자열을 이스케이프 형식 문자열로 변환합니다. 이 방법으로 인코딩되지 않는 문자: ! @ # $& * ( ) = : / ?
영어 설명: MSDN JScript 참조: encodeURI 메서드는 인코딩된 URI를 반환합니다. 결과를 decodeURI에 전달하면 encodeURI 메서드는 ":", "/", ";" 문자를 인코딩하지 않습니다. 및 "?"를 사용하여 이러한 문자를 인코딩합니다. Edge Core Javascript 가이드: 특정 문자의 각 인스턴스를 UTF-8 인코딩을 나타내는 1개, 2개 또는 3개의 이스케이프 시퀀스로 대체하여 URI(Uniform Resource Identifier)를 인코딩합니다. 캐릭터
encodeURIComponent() 메서드: UTF-8 인코딩 형식을 사용하여 URI 문자열을 이스케이프 형식 문자열로 변환합니다. encodeURI()와 비교하여 이 메서드는 / 및 기타 문자와 같은 더 많은 문자를 인코딩합니다. 따라서 문자열에 URI의 여러 부분이 포함되어 있으면 이 방법을 사용하여 인코딩할 수 없습니다. 그렇지 않으면 / 문자가 인코딩된 후 URL에 오류가 표시됩니다. 이 방법으로 인코딩되지 않는 문자: ! * ( )
영어 설명: MSDN JScript 참조: encodeURIComponent 메서드는 결과를 decodeURIComponent에 전달하면 원래 문자열이 반환됩니다. encodeURIComponent 메서드는 모든 문자를 인코딩하므로 문자열이 /folder1/과 같은 경로를 나타내는 경우 주의하세요. 폴더2/default.html. 슬래시 문자는 인코딩되며 웹 서버에 요청으로 전송되는 경우 유효하지 않습니다. 문자열에 둘 이상의 URI 구성 요소가 포함되어 있으면 encodeURI 메소드를 사용하세요. 특정 문자의 각 인스턴스를 문자의 UTF-8 인코딩을 나타내는 1개, 2개 또는 3개의 이스케이프 시퀀스로 바꾸는 URI(Uniform Resource Identifier) 구성 요소입니다.
따라서 중국어 문자열의 경우 문자열 인코딩 형식을 UTF-8 형식으로 변환하지 않으려면(예: 원본 페이지와 대상 페이지의 문자 집합이 동일한 경우) 이스케이프만 사용하면 됩니다. 페이지가 GB2312 또는 기타 인코딩이고 매개변수를 허용하는 페이지가 UTF-8로 인코딩된 경우 encodeURI 또는 encodeURIComponent를 사용해야 합니다.
또한 javascript1.5 이후에 encodeURI/encodeURIComponent가 도입되었으며, javascript1.0에서는 escape가 가능했습니다.
탈출() 메소드는 서버 측에서 공백으로 해석되거나 해당 필드에 공백이 있는 양식에 의해 생성되는 문자를 인코딩하지 않습니다. 이러한 단점으로 인해 가능하면 escape() 사용을 피해야 합니다. 가장 좋은 대안은 일반적으로 encodeURIComponent()입니다. encodeURI() 메서드의 사용은 URL의 일부인 쿼리 문자열과 달리 URI [REF]를 인코딩한다는 점에서 escape()보다 조금 더 전문화되어 있습니다. URI를 사용하고 특정 문자를 인코딩되지 않은 상태로 유지해야 하는 리소스에 사용할 문자열을 인코딩해야 하는 경우 이 방법을 사용합니다. ' 문자는 URI 내에서 유효한 문자이므로 이 메소드는 인코딩하지 않습니다. 마지막으로, URI의 단일 구성 요소를 인코딩할 때 대부분의 경우 encodeURIComponent() 메소드를 사용해야 합니다. 이 방법은 일반적으로 URI의 특수 문자로 인식되는 특정 문자를 인코딩하여 많은 구성 요소가 포함될 수 있도록 합니다. ' 문자는 URI 내에서 유효한 문자이므로 이 방법은 인코딩하지 않습니다.

각각의 엔진의 구현 원리 및 최적화 전략이 다르기 때문에 JavaScript 엔진은 JavaScript 코드를 구문 분석하고 실행할 때 다른 영향을 미칩니다. 1. 어휘 분석 : 소스 코드를 어휘 단위로 변환합니다. 2. 문법 분석 : 추상 구문 트리를 생성합니다. 3. 최적화 및 컴파일 : JIT 컴파일러를 통해 기계 코드를 생성합니다. 4. 실행 : 기계 코드를 실행하십시오. V8 엔진은 즉각적인 컴파일 및 숨겨진 클래스를 통해 최적화하여 Spidermonkey는 유형 추론 시스템을 사용하여 동일한 코드에서 성능이 다른 성능을 제공합니다.

실제 세계에서 JavaScript의 응용 프로그램에는 서버 측 프로그래밍, 모바일 애플리케이션 개발 및 사물 인터넷 제어가 포함됩니다. 1. 서버 측 프로그래밍은 Node.js를 통해 실현되며 동시 요청 처리에 적합합니다. 2. 모바일 애플리케이션 개발은 재교육을 통해 수행되며 크로스 플랫폼 배포를 지원합니다. 3. Johnny-Five 라이브러리를 통한 IoT 장치 제어에 사용되며 하드웨어 상호 작용에 적합합니다.

일상적인 기술 도구를 사용하여 기능적 다중 테넌트 SaaS 응용 프로그램 (Edtech 앱)을 구축했으며 동일한 작업을 수행 할 수 있습니다. 먼저, 다중 테넌트 SaaS 응용 프로그램은 무엇입니까? 멀티 테넌트 SAAS 응용 프로그램은 노래에서 여러 고객에게 서비스를 제공 할 수 있습니다.

이 기사에서는 Contrim에 의해 확보 된 백엔드와의 프론트 엔드 통합을 보여 주며 Next.js를 사용하여 기능적인 Edtech SaaS 응용 프로그램을 구축합니다. Frontend는 UI 가시성을 제어하기 위해 사용자 권한을 가져오고 API가 역할 기반을 준수하도록합니다.

JavaScript는 현대 웹 개발의 핵심 언어이며 다양성과 유연성에 널리 사용됩니다. 1) 프론트 엔드 개발 : DOM 운영 및 최신 프레임 워크 (예 : React, Vue.js, Angular)를 통해 동적 웹 페이지 및 단일 페이지 응용 프로그램을 구축합니다. 2) 서버 측 개발 : Node.js는 비 차단 I/O 모델을 사용하여 높은 동시성 및 실시간 응용 프로그램을 처리합니다. 3) 모바일 및 데스크탑 애플리케이션 개발 : 크로스 플랫폼 개발은 개발 효율을 향상시키기 위해 반응 및 전자를 통해 실현됩니다.

JavaScript의 최신 트렌드에는 Typescript의 Rise, 현대 프레임 워크 및 라이브러리의 인기 및 WebAssembly의 적용이 포함됩니다. 향후 전망은보다 강력한 유형 시스템, 서버 측 JavaScript 개발, 인공 지능 및 기계 학습의 확장, IoT 및 Edge 컴퓨팅의 잠재력을 포함합니다.

JavaScript는 현대 웹 개발의 초석이며 주요 기능에는 이벤트 중심 프로그래밍, 동적 컨텐츠 생성 및 비동기 프로그래밍이 포함됩니다. 1) 이벤트 중심 프로그래밍을 사용하면 사용자 작업에 따라 웹 페이지가 동적으로 변경 될 수 있습니다. 2) 동적 컨텐츠 생성을 사용하면 조건에 따라 페이지 컨텐츠를 조정할 수 있습니다. 3) 비동기 프로그래밍은 사용자 인터페이스가 차단되지 않도록합니다. JavaScript는 웹 상호 작용, 단일 페이지 응용 프로그램 및 서버 측 개발에 널리 사용되며 사용자 경험 및 크로스 플랫폼 개발의 유연성을 크게 향상시킵니다.

Python은 데이터 과학 및 기계 학습에 더 적합한 반면 JavaScript는 프론트 엔드 및 풀 스택 개발에 더 적합합니다. 1. Python은 간결한 구문 및 풍부한 라이브러리 생태계로 유명하며 데이터 분석 및 웹 개발에 적합합니다. 2. JavaScript는 프론트 엔드 개발의 핵심입니다. Node.js는 서버 측 프로그래밍을 지원하며 풀 스택 개발에 적합합니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

드림위버 CS6
시각적 웹 개발 도구

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.
