这里说的乱码问题包括:

一,开发的页面出现乱码,

二,从数据库取值或插入时出现乱码,

三,phpmysql页面出现乱码。

 

刚开始碰到乱码问题可能会不知所措,但是了解了可能出现乱码的几个环节,便可以轻松地进行一一排查。

 

避免出现乱码的最好的做法,就是在所有指定编码的地方指定相同的编码(废话,乱码不就是编码不一致造成的么?)。这里推荐釆用utf-8进行统一编码。

下面分别描述及解释下上面三种出现乱码的情况。

第一种情况,不涉及数据库操作,或者我们假设数据库的操作不会造成乱码(造成乱码的情况下面讨论)。那么只需要检查脚本文件的编码和页面编码是否一致即可。文件的编码一般的文本编辑器都可以更改,如notepad2,notepad++等,而网页页面的编码则通过meta标签来指定。
<meta content=”text/html; charset=UTF-8″ http-equiv=”Content-Type” />

第二种情况,则需要数据库编码、数据库表中该字段的编码及页面编码保持一致。数据库编码及字段编码可以在创建时设置collation来指定。而页面编码上面已经提到。

有的时候,我们在进行数据库操作时,插入的是什么字符,读取出来的时候还是那些字符,好像没有什么问题。但是当我们对数据库进行管理的时候,在第三方工具里显示的却是乱码,如phpmysql,mysql workbench等。这就是由于连接数据库时的编码和数据库的编码或者phpmysql的页面编码不一致造成的。我们可以在数据库连接建立后通过sql语句来指定编码:SET NAMES UTF8; 注意没有连字符。

总结:这里推荐的方式是将所有的编码指定为utf-8。

脚本文件编码:utf-8

网页页面编码:
<meta content=”text/html; charset=UTF-8″ http-equiv=”Content-Type” />

数据库及字段编码:utf8_general_ci

数据库连接编码:SET NAMES UTF8;

Trackback

only 1 comment untill now

  1. 学习了,特别是中英双语站时容易出问题

Add your comment now

;) :| :x :twisted: :roll: :oops: :o :mrgreen: :lol: :idea: :evil: :cry: :arrow: :P :D :?: :? :) :( :!: 8O 8)

你可以使用@somebody:开头, 来邮件通知somebody你回复了他的留言(用户名区分大小写).