인터넷에서 많은 방법을 검색했는데, 제가 사용한 jquery.form.js가 3.01 버전이라 올해 3월 6일에야(한숨... 그저께) 출시된 탓인지 대체적으로 안되네요. 일하다. 하위 버전이 작동하는지에 대해서는 아직 검증은 안해봤지만 대부분 무책임한 카피카피입니다. 제출하기 전에 모든 값을 인코딩하는 방법도 있습니다. 이는 너무 번거롭고 프런트엔드 코드가 많이 추가되는 것 같아 채택하지 않았습니다.
그래, 스스로 처리하자. 먼저 문제 해결의 입구인 진입점을 찾아야 합니다. JS가 전달한 데이터를 인코딩하고 싶기 때문에 먼저 데이터 전송 기능부터 시작해야 합니다. 나는 ajaxSubmit 함수를 호출하고 있습니다. 그게 전부입니다. js 파일을 열고 이 함수를 찾은 후 소스 코드를 보고 다음 줄을 찾습니다.
var qx, a = this.formToArray(options.semantic);
formToArray의 기능은 수집된 양식 데이터를 객체 배열을 $.get , $.post 및 기타 Ajax 함수에 전달합니다. 제 생각에는 기회가 있다고 생각해요. 그러나 시간을 절약하기 위해 바로 주제로 넘어가겠습니다. 위 줄에 중단점을 설정하고, 웹페이지에 중국어 데이터를 입력하고, JS를 통해 단계별로 디버깅하여 소스코드를 이해했습니다. 프로그램이 실행된 후 몇 번의 점프 끝에 마침내 fieldValue 함수의 마지막 부분을 찾았습니다.
return $(el).val();
이런 방식으로 여기서는 클라이언트만 인코딩하면 됩니다.
return escape($(el).val()) ;
그런 다음 서버 측에서 Server.UrlDecode()를 사용하여 디코딩하면 잘못된 문자가 더 이상 표시되지 않고 한자가 올바르게 인식될 수 있습니다~~~
좋은 방법이나 제안이 있습니까?