“許功蓋”问题解决方案
1修改my.ini(Windows)/my.cnf(Linux)
my.ini路径 %SYSTEMROOT%/my.ini
my.cnf路径 /etc/my.cnf
修改配置文件如下
--------------
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
#下面一行为加入部分
default-character-set = big5
set-variable=max_connections = 1000
[mysql.server]
user=mysql
basedir=/var/lib
[safe_mysqld]
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
#下面两行为加入部分
[client]
default-character-set = big5
--------------
2修改SQL语句,在SQL语句后面插入一个空格
3修改php.ini文件
如下
-----------------
; Magic quotes for incoming GET/POST/Cookie data.
magic_quotes_gpc = on
; Use Sybase-style magic quotes (escape ' with '' instead of ').
magic_quotes_sybase = Off
-----------------
但是这样处理后,SQL语句就会变成如下
INSERT INTO test (id ,name ) VALUES('' ,'許\功\蓋');
不怎么美观,不过也没什么不过就是取出的时候使用stripslashes
4程序里处理
在程序里把用"許功蓋"addslashes( $str)处理一下
使用SQL语句
INSERT INTO test (id ,name ) VALUES('' ,'".addslashes('許功蓋')."');
取出的时候使用stripslashes一下
5使用UTF-8
完毕
由于我目前这个项目是PHP+MySQL的后台管理,Delphi+MySQL为前台
所以我选择方案一,问题到此结束
以上是参考了一下资料写出来的,全部通过测试
PHP测试程序如下,提交的字符一定要是繁体的"許功蓋"
1<meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
1<form action=" <?= $_SERVER [ 'PHP_SELF' ] ?> " method="post" target="_self">
2<input id="username" name="username" type="text"/>
3<input id="submit" name="submit" type="submit" value="submit"/>
4<input id="reset" name="reset" type="reset" value="reset"/>
5</form>