编程乱码问题初步探索.doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编程乱码问题初步探索.doc

  编程乱码问题初步探索教育资源库   乱码的问题分为很多种,很多人一见到有乱码就开始骂mysql,其实很多情况下并不是mysql造成的。   从乱码产生的原因来分析,乱码的产生一般有以下几种情况。   1、网页编码与程序编码不一致的问题   所谓的网页编码问题就是指你的html代码中定义的charset,例如以下这段代码: lt;headgt; lt;titlegt;Chat Tutorial Applicationlt;/titlegt; lt;meta http-equiv=Content-Type content=text/html; charset=UTF-8 /gt; lt;meta name=language content=en /gt; lt;meta name=author content=Padraic Brady /gt; lt;link rel=stylesheet href=public/styles/chat.css type=text/css /gt; lt;script src=public/javascript/scriptaculous/lib/prototype.js type=text/javascriptgt;lt;/scriptgt; lt;script src=public/javascript/scriptaculous/src/scriptaculous.js type=text/javascriptgt;lt;/scriptgt; lt;script src=javascript/chat.js type=text/javascriptgt;lt;/scriptgt; lt;/headgt;  他设置了浏览器端采用gb2312的字符集,此时如果程序使用的是utf8的编码(就是指以什么样的编码来编写的程序,一般在编辑器中设置),那么就会产生乱码。   此时的解决方法就是把charset的值改为utf8。   2、代码本身就存在乱码问题   这种情况是指你的代码本身就存在乱码问题。照成这种情况的原因一般是你以另一种编码格式修改了你的代码后并做了保存,这样你的程序中就有几种编码形式的代码,那么输出的时候自然就会有乱码。这类问题相对来说比较容易解决,只要人工找到那段有乱码的代码,然后修改就行了(很多编辑器可以完成这个工作)。   3、mysql的问题(此次讨论仅围绕mysql5.0之后的版本展开)   现在再来看最容易照成乱码,也是最容易让人迷糊的mysql乱码问题。   要说mysql乱码,得先从mysql的几个参数说起,从mysql5开始,多了几个设置字符集的系统变量: character_set_client客户端字符集character_set_connection客户端与服务器端连接采用的字符集character_set_resultsSELECT查询返回数据的字符集character_set_database数据库采用的字符集   乱码问题一般是由于以上几个变量设置错误照成的,很多人在请教乱码问题的时候,一般都会得到一个这样的答案:你先set names一下。   那么set names是什么呢? set names实际上就是同时设置了character_set_client,character_set_connection,character_set_results这三个系统变量。   例如set names #39;gbk#39;等同于: set character_set_client = #39;gbk#39; set character_set_connection = #39;gbk#39; set character_set_results = #39;gbk#39;  很多情况下,这样设置了之后就能把乱码问题解决了。但是还是不能完全避免出现乱码的可能,为什么呢?   因为character_set_client,character_set_connection这两个变量仅用与保证与character_set_database编码的一致,而character_set_results则用与保证SELECT返回的结果与程序的编码一致。   例如,你的数据库(character_set_database)用的是utf8的字符集,那么你就要保证character_set_client,character_set_connection也是utf8的字符集。而你的程序也许采用的并不是utf8,比如你的程序用的是gbk,那么你若把character_set_results也设置为utf8的话就会出现乱码问题。此时你应该把character_set_results设置为g

文档评论(0)

ggkkppp + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档