学习笔记之乱码处理(PHP,MYSQL,HTML,FLEX)

1.MySQL:

  可用MySQL-FRONT设置字符编码为UTF-8 (我用的是UTF-8的 :)) , 或者用命令行在建立数据库时,设置charset=utf-8

  mysql> character_set_client  是取得客户端提交的字符编码
  mysql> character_set_connection  是将客户端的字符编码转换为服务器数据库的字符编码
  mysql> character_set_results  是将服务器端的字符编码转换为客户端的字符编码
  mysql> character_set_server  mysql服务器默认字符编码,当创建一个新的数据库时,除非明确指定,这个数据库的字符集被缺省设定为character_set_server;

  mysql> character_set_database    这个数据库默认的字符编码,当选定了一个数据库时,character_set_database 被设定为这个数据库默认的字符集;

2.PHP:

  PHP本身没有什么涉及到编码问题的,主要是链接数据库和利用模版显示结果时,要注意交互数据的编码格式 。在和Mysql交互时 , 要设置charset

  PHP在显示页面时,可用header("Content-type: text/html; charset=utf-8");

  PHP在连接数据库的时候,一般采用PDO是 可在config参数中,给charset

  PDO的构造参数形式如下:

    function __construct ($dsn, $username, $passwd, $options)

 

  在$options参数中,可给charset="utf-8";

 

    $dsn = "mysql:dbname=test; host=localhsot";

$options->charset = db_config::charset;
$options->driver = db_config::driver

 

 

 

3.HTML

  主要用到的有meta中的标签

 

<meta http-equiv="Content-Type"  content="text/html;charset=utf-8" >

 

 

4.FLEX

  主要说flex和php利用amfphp通信时的乱码问题,在amfphp的gateway.php中,有一行

 

    $gateway->setCharsetHandler("utf8_decode", "ISO-8859-1", "ISO-8859-1");

  这一行就是设置flex和php的两端字符集,一般来说,大家肯定都是统一字符集的,所以我把两个都改成了utf-8,有用不一样编码的同学可以自己尝试一下,研究一下到底那个是PHP,那个是FLEX的

 

  flex和php通信调用mysql是,主要也是要注意php和mysql的字符集,利用amfphp调用的话,本质上,还是http的访问,所以 只要php和mysql没问题 基本上问题都不大。

 

 

posted @ 2011-01-09 22:49  Tony_J  阅读(610)  评论(0编辑  收藏  举报