이 글에서는 Ajax 전송 매개변수 값이 중국어일 때 IE 브라우저와 FF 브라우저의 차이점을 주로 소개합니다. 예제 분석을 결합하여 Ajax 매개변수 전송 과정에서 매개변수 트랜스코딩과 관련된 주의사항과 사용 기술을 설명합니다. 참고로
이 글의 예시에서는 Ajax에서 전달한 매개변수 값이 중국어일 때 IE 브라우저와 FF 브라우저의 차이점을 설명합니다. 참고하실 수 있도록 모든 사람과 공유하세요. 자세한 내용은 다음과 같습니다.
이전 기사에서 "Javascript는 AJAX 콜백 함수를 기반으로 매개 변수를 전달합니다", 여기서는 Ajax가 중국어를 전달하는 과정에서 다양한 브라우저에 대한 잘못된 처리 방법을 주로 분석합니다. 매개변수.
Ajax가 중국어로 매개변수를 전달할 때 잘못된 문자가 나타납니다. 제가 겪은 상황은 다음과 같습니다.
1. 내 데이터베이스 연결 인코딩은 GB2312이고 latin1_swedish_ci
2.php 파일 인코딩 형식은 UTF-8이며 브라우저는 인코딩을 다음과 같이 표시합니다. : UTF-8
3 내 페이지는 두 가지 방식으로 표시됩니다.
1) 페이지가 로드될 때 자동으로 로드되고 1초마다 새로 고쳐집니다.
2) 확장 그룹 이름을 클릭하면 확장 그룹 해당 회원 카드 정보
4. 첫 번째 사례 처리:
control.php 페이지에서 session:
을 가져오고 데이터베이스 내용을 읽습니다.
line 53:
$grouparr[] = iconv("GB2312","UTF-8",$g[0]); //数据库内容转换为 UTF-8,这样能正常显示页面上的中文
line106:
$_SESSION['dispatchgroup'] = iconv("UTF-8","GB2312",$grouparr[0]);//将转换的中文修改为 GB2312,用于在 dispatchinfo.php 文件中获得查询的条件值,获得GB2312编码的值。
dispatchinfo.php: line 291
if($_SESSION['dispatchgroup']){ $groupaddressinfo = function_listaddressesbygroup($_SESSION['dispatchgroup'],1,$value,0,$_SESSION['dispatchexten'],$_SESSION['dispatchgrouppage']); //2013-5-17$groupaddressinfo = "listaddressesbygrouptype|0|LocalExt|1|12|1,,,801,空闲,,|1,,,802,不在线,,|1,,,803,空闲,,|1,,,804,不在线,,|,,,805,不在线,,|,,,806,不在线,,|,,,807,不在线,,|,,,808,不在线,,|,,,809,不在线,,|,,,810,不在线,,|5,餐厅,,811,10.1.6.189;连接|6,,,812,user2;断开|"; }
이 경우 IE, FF 모두 정상적으로 표시될 수 있습니다.
5. 두 번째 경우:
클릭한 확장 그룹의 중국어 이름을 얻으려면 "확장 그룹"을 클릭하세요. 이 이름은 Ajax를 통해 처리하기 위해 Dispatchinfo2.php 파일로 전달됩니다. js 클릭 이벤트 이후 획득한 이름과 경고는 모두 정상 값입니다[형식은 UTF-8입니다. 이때 데이터베이스의 내용은 GB2312입니다. 이때 iconv 트랜스코딩 후에 오류가 발생합니다.
첫번째 경우만 처리시 변환인코딩 방식을 사용하기 때문에
$groupname = iconv("GB2312","UTF-8",$groupname);
이때 다시 인코딩을 하면 에러가 발생합니다,
해결책:
JS 비동기 제출 처리:
checkval(); var ajax = InitAjax(); var url = "dispatchinfo2.php?"+arges; //2013-08-21 limx 中文编码问题 url = encodeURI(encodeURI(url)); ajax.open('GET',url,true);
dispatchinfo2. php
$groupname = urldecode($groupname); $groupname = iconv("utf-8","GB2312",$groupname);
4줄의 코드로 중국어 인코딩 문제를 완벽하게 해결합니다.
AJAX에서 보낸 데이터는 UTF-8 인코딩으로 전송되므로 인코딩 변환은 서버 측에서 수행되어야 합니다. (여기 내 페이지는 GB2312로 인코딩되어 있는데 UTF-8을 사용하는 경우 이 단계는 필요하지 않습니다. ) 문제) 그래서 서버측에서 UTF-8을 GB2312로 변환했습니다
위 내용은 제가 모두를 위해 정리한 내용입니다. 앞으로 모든 분들께 도움이 되길 바랍니다.
관련 기사:
Ajax를 사용하여 사용자 이름 비동기 검증을 완료하는 SSH 온라인 몰
위 내용은 Ajax 매개변수 값이 중국어인 경우 IE 브라우저와 FF 브라우저의 차이점 분석 예시의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!