乱码!解决思路
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了乱码!解决思路,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2366字,纯文字阅读大概需要4分钟。
内容图文
乱码!!!先说一下我的环境。
我的mysql用的是GBK编码。
我的php.ini里面也是默认使用GBK 我的httpd.conf文件里也是默认使用GBK
我的页面声明也是GBK,我的源码保存也是GBK。我不知道为什么我这么统一了编码,还会出现一个地方的乱码。
页面声明和保存格式都是GBK 我就不发图了。
然后呢我这个功能是做一个快速搜索客户。因为查询不到。我特意打印了一下这条语句。结果发现最后是乱码。请问是什么问题?
分享到:
------解决方案--------------------
表单页面和处理页面是同一个文件吗? 编码不一致的缘故。
------解决方案--------------------
浏览器 页面默认的是GBK编码吗 如果项目没要求个人还是觉得UTF-8编码比较好 统一成UTF-8编码
------解决方案--------------------
这种乱码样式是GBK与UTF-8冲突,修改一下就ok了,iconv你传过来的变量也行。url转码也行,修改文件编码也行。个人建议楼主研究一下大概的乱码问题,很多HTTP监视工具或者浏览器地址栏等在显示Url的时候会自动将Url进行一次解码(使用UTF-8字符集),这就是为什么地址栏显示的Url包含中文的缘故。但实际上发送给服务端的原始Url还是经过编码的
------解决方案--------------------
这与数据库的字符集无关
显然你的查询页面使用了 ajax 提交
你可能需要对传入传出的数据做转码处理,但不是必须的
一般的说,数据库和表的字符集都是无关紧要的,只要字段的字符集是宽字符的就可以了
何况如果:
数据库服务是租用的,你不可能去修改数据库系统的默认字符集
数据库是共享的(多人多个项目共用)你也不可能修改默认字符集去影响他人的工作
你实际要做的工作是:根据应用场合变换工作字符集(set names 指令)
对于 HTML 页面:
gbk 页面是 set names gbk
utf-8 页面是 set names utf8
对于 AJAX 应用是 set names utf8
AJAX 应用一般使用现成的 js 框架,比如 jquery
他们总是以 utf-8 编码发送数据(通过 encodeURIComponent 函数)
自己书写时,也要用 encodeURIComponent 编码发送的数据
由于 AJAX 服务端总是接收到 utf-8 编码的数据,所以以 gbk 为基准的网站可能需要做如下处理:
1、用 php 代码对传入的数据进行分析处理时,需做 utf-8 到 gbk 的转换
2、传入数据直接应用于查询时,先执行 set names utf8 指令
3、由 php 代码产生的 gbk 数据,可以转码成 utf-8 后输出
也可以在输出前先发送语言声明的头 header('Content-type: text/html;charset=GBK') 而不转码
总之:
mysql 可以自动将保存的数据的字符集转换成你需要的字符集
浏览器的工作字符集是 unicode 能自动转换明确声明的任何字符集的内容到 unicode
------解决方案--------------------
ajax 发送请求的时候使用js函数 encodeURIComponent()
php 接受变量时候使用 urldecode()
最后iconv("UTF-8", "gb2312", $content)
内容总结
以上是互联网集市为您收集整理的乱码!解决思路全部内容,希望文章能够帮你解决乱码!解决思路所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。