乱码的问题分为很多种很多人一见到有乱码就开始骂mysql其实很多情况下并不是mysql造成的 从乱码产生的原因来分析乱码的产生一般有以下几种情况 网页编码与程序编码不一致的问题 所谓的网页编码问题就是指你的html代码中定义的charset例如以下这段代码 <head> <title>Chat Tutorial Application</title> <meta httpequiv=ContentType content=text/html; charset=UTF /> <meta name=language content=en /> <meta name=author content=Padraic Brady /> <link rel=stylesheet href=public/styles/chatcss type=text/css /> <script src=public/javascript/scriptaculous/lib/prototypejs type=text/javascript></script> <script src=public/javascript/scriptaculous/src/scriptaculousjs type=text/javascript></script> <script src=javascript/chatjs type=text/javascript></script> </head>
他设置了浏览器端采用gb的字符集此时如果程序使用的是utf的编码(就是指以什么样的编码来编写的程序一般在编辑器中设置)那么就会产生乱码 此时的解决方法就是把charset的值改为utf 代码本身就存在乱码问题 这种情况是指你的代码本身就存在乱码问题照成这种情况的原因一般是你以另一种编码格式修改了你的代码后并做了保存这样你的程序中就有几种编码形式的代码那么输出的时候自然就会有乱码这类问题相对来说比较容易解决只要人工找到那段有乱码的代码然后修改就行了(很多编辑器可以完成这个工作) mysql的问题(此次讨论仅围绕mysql之后的版本展开) 现在再来看最容易照成乱码也是最容易让人迷糊的mysql乱码问题 要说mysql乱码得先从mysql的几个参数说起从mysql开始多了几个设置字符集的系统变量 character_set_client客户端字符集character_set_connection客户端与服务器端连接采用的字符集character_set_resultsSELECT查询返回数据的字符集character_set_database数据库采用的字符集 乱码问题一般是由于以上几个变量设置错误照成的很多人在请教乱码问题的时候一般都会得到一个这样的答案你先set names一下 [] [] |