A. php get传递的中文参数地址栏显示
这个是浏览器自动url编码
其实你没必要管这个
当你程序接受这个参数的时候,无论中文有没有被编码,接受到后,他都是中文!
没有什么影响!
其实,浏览器对url中的中文或者特殊符号进行编码,还是一件好事,防止参数传递出错!
B. PHP GET参数特殊符号有什么规律
这是URI(Uniform Resource Identifier)编码如果URL中有汉字,就必须编码后使用
例如,":"字符用十六进制来表示为3A,所以必须使用%3A来表示,"/"字符用十六进制来表示为2F,所以必须使用%2F来表示"/"字符。
一般空格是转换为加号 汉字以及特殊字符都要根据16进制的内容再在前门加一个%进行转换
而这里面分为不同的编码规则 有GBK、UTF8 所以在编码的时候要进行设置
下面是一个java获取字符串编码的例子
//百分比编码:获取某个字符的URL编码,编码是用URLEncoder.encode(),解码是用URLDecoder.decode()函数
Stringtext;
try{
text=URLEncoder.encode("http://.com","iso-8859-1");
System.out.println(text);
}catch(UnsupportedEncodingExceptione){
e.printStackTrace();
}
C. 通过php的get或是gost,传递的中文要不要用js先编码一下
POST不需要,GET需要。
如果用的是UTF-8不编码的话就会乱码。
D. PHP通过GET提交方式提交中文无法加入MYSQL数据库
首先看你数据库中是不是有fight 这个表 之后你可以在mysql_query($geto) 之前用echo $geto;打印一下你的sql语句 之后将语句用phpmyadmin查看下是否正确 其他的就没有了 这是两个比较容易出错的地方
E. php 用get方式传递中文参数,无法用strpos判断中文字处于第几个
尝试使用urldecode解码,中文字符在地址栏传递时会被解析为十六进制字符
F. PHP 接收GET中文乱码问题
哎,又是乱码问题,我不多说,直接上代码
if(!preg_match('/^.*$/u',$_REQUEST['word'])){
$username=iconv('GB2312','UTF-8',$_REQUEST['word']);
}
上面的代码就是判断传来的是数据类型是不是UTF-8编码,如果不是就转成转UTF-8编码,当然只支持GB2313的,如果传递过来的编码是big5的话也还是出现乱码,但是一般浏览器中人用的大部默认是GB2312或是UTF8的,先用着再说
G. PHP中$_GET和$_POST作用
$_GET接受前台通过get传值传过来的值
$_POST接受前台通过post传值传过来的值
H. php中form通过get传中文字符自动用urlencode转换
不需要做任何处理,这是由浏览器自动控制的。
带有中文的地址显示上更友好,但是,如果你复制该地址到一个文本文件中,你应该会看到粘贴的结果是已经用url编码的结果咯。
请不要在提交时自行编码,否则反倒会造成问题,即当你提交时进行了额外的urlencode的话,php端必须也同样额外的进行一次urldecode,否则你无法得到正确的搜索结果了。
urlencode并不是加密,只是格式不同而已。再说用户自己定制的搜索关键词,你加密它有什么意义?用户难道不知道自己写的什么吗,是不是这个道理。