UTF-8 全站

来源:互联网 发布:淘宝最大的股东是谁 编辑:程序博客网 时间:2024/04/30 15:04

引自:http://hi.baidu.com/linsenz/blog/item/da80ff02df168aea08fa9395.html

 UTF-8 全站

1. 用 vi /etc/httpd/conf/httpd.conf 设定Apache中的语系为 (记得restart)

AddDefaultCharset UTF-8

2. 用 vi /etc/php.ini 设定php中的语系为 (记得restart)

default_charset = "utf-8"

3. 用 vi /etc/my.cnf 设定MySQL中的语系为 (记得restart)

[mysqld]

init_connect='SET NAMES utf8'

default-character-set=utf8

[client]

default-character-set = utf8

4. 建立资料库时选择语系: (记得清除DB Cache)

DROP DATABASE IF EXISTS `aa`;

CREATE DATABASE `aa` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

USE `aa`;

CREATE TABLE IF NOT EXISTS `aat` (

`id` char(1) NOT NULL default '1',

`myStr` varchar(200) default NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

5. 用UltraEdit(v11.20a版) 转换所有ANSI格式的php档案转化为UTF-8格式:

File --> Conversions --> ASCII to UTF-8 (Unicoding Editing)

( 在UltraEdit中按Advanced --> configuration --> File Handling

--> Unicode/UTF-8 Detection --> 剔选Auto detect utf-8 files )

如有需要时,可执行Remove BOM.php. 当用WinXP的Notepad将php档由ANSI转为UTF-8时,

因档头有BOM,会引起排版问题,故必须移除,执行Remove BOM.php即可自动移除. 

6. 在php档中必须加入:

<html><head>

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

</head><body>

7. 在连接DB的档中必须加入3行mysql_query才ok:

$host="localhost"; $DBname="aa";

$user= "root"; $passwd = "";

$link = mysql_connect($host,$user,$passwd) or die ("Fail");

$db = mysql_select_db($DBname, $link) or die ("Fail");

// 要在真正query DB取出资料前,加入以下3行

mysql_query("SET NAMES 'utf8'");

mysql_query("SET CHARACTER_SET_CLIENT=utf8");

mysql_query("SET CHARACTER_SET_RESULTS=utf8");

$sql = "select * from aat where crid='1'";

$rows = mysql_query($sql);

8. 在php档中, 如有需要须注意: [Optional]

运用htmlentities和htmlspecialchars时,要似如下:

$chars = htmlentities($chars,ENT_QUOTES,"UTF-8");

$chars = htmlspecialchars($chars,ENT_QUOTES,"UTF-8");

并且在显示前要用

$chars = html_entity_decode($chars,ENT_QUOTES,"UTF8");

如有用过addslashes()或mysql_real_escape_string()记得用以下:

$chars = stripslashes($chars);

如有需要可以用以下function将不同编码转换:

$chars = iconv('Big5','UTF-8',$chars); //由Big5转为UTF-8 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<?php header('Content-Type:text/html;charset=UTF-8'); ?>

原创粉丝点击