#眉標=PHP 6 #副標=準備升級至PHP6之路 #大標=解決文字編碼的衝突 #作者=文/圖 葉建榮 ============= unicode.semantics = off unicode.runtime_encoding = iso-8859-1 unicode.script_encoding = utf-8 unicode.output_encoding = utf-8 unicode.from_error_mode = U_INVALID_SUBSTITUTE unicode.from_error_subst_char = 3f ================   ==<反灰>=========== ================ ==<反灰>=========== insert into chartesttable values('功'); ================ ============= 程式1 function fix_char($rong_str) { if ( mysql_client_encoding() != "big5" ) return $rong_str; $tmp_length = strlen($rong_str); for ( $tmp_i=0; $tmp_i<$tmp_length; $tmp_i++ ) { $str_a = substr($rong_str, $tmp_i , 1); $str_b = substr($rong_str, $tmp_i+1, 1); $value1 = ord($str_a); $value2 = ord($str_b); if ( $value1 > 128 ) { if ( $value2 == 92 ) { $rong_str = substr($rong_str, 0, $tmp_i+2) . substr($rong_str,$tmp_i+3); $tmp_length = strlen($rong_str); } $tmp_i++; } } $tmp_length = strlen($rong_str); if ( substr($rong_str, ($tmp_length-1), 1) == "\\" ) $rong_str .= chr(32); $rong_str = str_replace("\\0", "\ 0", $rong_str); return $rong_str; } ================ ==<反灰>===========  CREATE DATABASE `jiannrong` DEFAULT CHARACTER SET utf8 COLLATE utf8_ unicode _ci; ================     ==<反灰>=========== create table if not exists `jiannrong_table` ( `id` mediumint(8) not null auto_increment, `title` varchar(50), `class` varchar(50) , `question` varchar(255) , `answer` longtext not null, primary key (`id`)) engine=myisam default charset=utf8 ; ================   ==<反灰>=========== [mysqld] default-character-set = utf8 default-collation=utf8_general_ci [mysqldump] default-character-set = utf8 [mysql] default-character-set = utf8 [client] Default-character-set = utf8 ================     ==<反灰>=========== Mysql_query("SET NAMES utf8"); mysql_query("CHARACTER SET utf8"); mysql_query("SET COLLATION_CONNECTION=utf8_general_ci"); mysql_query("SET CHARACTER_SET_SERVER = utf8"); ================