• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

PHP 关于UTF-8中文乱码解决办法

php 搞代码 4年前 (2022-01-24) 14次浏览 已收录 0个评论

PHP 关于UTF-8中文乱码解决方法

1。用表单进行提交,post或是get方法都可以。
用这种方法进行”人”字提交时,如果你用的是get方法,你会发现。ie地址栏的url上是找不到”人”字的,看到的是”%4e%ba%ba”,原因在于,ie的表单进行提交时,被自动进行了。urlencode编码,而在搜索页里接收变量时,php自动的把他给decode了。所以,你得到的就是utf-8的”人”字。并不会出现任何问题,当然了,前提是你表单所在的页面是utf-8的编码。

?

2。文字链接进行提交,utf-8编码的页面上有一个文字链,形如xxxx,当你点击提交后,你会看到,在ie的地址栏里,你可以看到那个”人”字,在页面里你接收到后进行输出,发现他会变成”浜”这个字,问题出来了,utf-8的页面,提交后,输出页面也是utf-8的编码,可就是出错了。注意,这并不是你环境设置的问题,网上好多介绍说把php.ini里的default_charset这一样打开并改成utf-8可以解决,这是不准确的说法,继续我们的问题,这次不输出这个字,用urlencode进行编码并输出编码,看到结果变成”%4e%ba”了,少了高位。即然到这里时少了高位,那么,在这个页面里,是无法做任何处理了。ie的问题就在这里了。utf-8的编码是每个汉字占3位字节,而在你用文字链的方式进行提交时,如果你是直接写的汉字,其实,这个汉字确确实实在提交时是utf-8的编码,但,因为ie对html解析的问题,他把奇数的汉字,或称之为奇数的全角字符自为主张的截掉了高位,按两字节进行处理。这样也就出了我们现在的问题了。解决方法:把你提交的关键字,写成偶数个,就不会再出现这些问题了,如果真的只有奇数个,那么,在提交交,就对其进行urlencode编码,或是在关键字的前边或是后边加入一个全角的空格,这样,接收页面就可以得到完整的字符串了,再做处理截掉空格就行了。

?

3。ie地址栏里直接手动写入中文进行页面打开,这种方式多见于分页查询时,有网页基础知识的用户,为

!本文来源gaodai.ma#com搞#代!码(网

搞gaodaima代码了省事,会在一个关键字查询中,直接修改url地址,进行另一个关键字的查询。这时,用户在地址栏里输入的汉字,是gb2312的,而不会因为你的页面是utf-8面自动转换,如果你有兴趣,可以试一下,urlencode看一下。这时,在你接收到关键字后,用iconv进行转换成utf-8就可以查询了


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP 关于UTF-8中文乱码解决办法
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址