This article mainly introduces the difference between IE browser and FF browser when the Ajax parameter value is Chinese. It combines the example analysis to explain the precautions and usage skills related to parameter transcoding in the ajax parameter transfer process. What is needed Friends can refer to
The example in this article describes the difference between IE browser and FF browser when the Ajax parameter value is Chinese. Share it with everyone for your reference, the details are as follows:
I introduced "Javascript Passing Parameters Based on AJAX Callback Function" before. Here we mainly analyze the garbled processing method for different browsers in the process of ajax passing Chinese parameters.
When Ajax passes parameters in Chinese, garbled characters appear. The situation I encountered is:
1. My database connection encoding is GB2312, latin1_swedish_ci
2.php file encoding The format is UTF-8, and the browser display encoding is: UTF-8
3. My page is displayed in two ways:
1) Automatically load when the page is loaded, each Refreshed every one second
2) When clicking on an extension group name, obtain the corresponding member card information of the extension group
4. For the first Handling of this situation: Obtain session:
on the
control.php page and read the contents of the database:
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;断开|"; }
In this case, both IE and FF can display normally.
5. For the second case:
Click on the "Extension Group" name to get the Chinese name of the clicked extension group, and pass it to the dispatchinfo2.php file for processing through Ajax. Before modification , the Chinese name and alert obtained after the js click event are all normal values [the format is UTF-8]. At this time, the content in the database is GB2312. At this time, an error will occur after iconv transcoding.
Because only for the first case, I use the conversion encoding method when processing
$groupname = iconv("GB2312","UTF-8",$groupname);
At this time, an error will occur when encoding again,
Solution Method:
Asynchronous submission processing of 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);
Four lines of code perfectly solve the problem of Chinese encoding.
Because AJAX sends data in UTF-8 encoding, encoding conversion needs to be performed on the server side (my page here is encoded in GB2312, if it is UTF-8) There should be no problems with this step), so I converted UTF-8 to GB2312 on the server side
The above is what I compiled for everyone. I hope it will be helpful to everyone in the future.
Related articles:
Using ajax in SSH online mall Complete the asynchronous verification of whether the user name exists
Analysis of the order of data returned by ajax request
The above is the detailed content of Example analysis of the difference between IE browser and FF browser when the Ajax parameter value is Chinese. For more information, please follow other related articles on the PHP Chinese website!