|
发表于 2011-8-1 20:15:36
|
显示全部楼层
来自 中国–山东–淄博
看到不少朋友在关心AMXX与MySQL中文问题,自己摸索了一下,把自己成功的经验拿出来讨论一下
有几种解决方法,我就谈一种比较合理的
一、关于安装MySQL,可采取默认,也可以在安装时选择UTF8编码
二、在创建数据库时,采用UTF8编码,如:[php]
result = dbi_query(dbc, "CREATE TABLE IF NOT EXISTS `data` (`ID`VARCHAR(35),...PRIMARY KEY(`ID`))ENGINE=InnoDB DEFAULT CHARSET=utf8;")
[/php]PRIMARY KEY(`ID`)指定ID字段为主键,建议使用,可以提高效率;ENGINE=InnoDB DEFAULT CHARSET=utf8如果你省了这步,也可以,但默认安装了用图形界面软件浏览时汉字同样会是乱码
三、也是关键所在,在一次查询或一次写入时要注意编码转换,你可以采取
查询
[php]
...
result = dbi_query(dbc, "SET NAMES 'utf8';")
result = dbi_query(dbc, "SELECT * FROM data WHERE ID = '%s';", name)
...
if(result >= RESULT_OK)
dbi_free_result(result)
[/php]
更新
[php]
result = dbi_query(dbc, "SET NAMES 'utf8';")
result = dbi_query(dbc, "UPDATE data SET SIGN = '%s' WHERE ID = '%s';", signs, name)
if(result != RESULT_FAILED)
dbi_free_result(result)
[/php]
插入
[php]
result = dbi_query(dbc, "SET NAMES 'utf8';")
result = dbi_query(dbc, "INSERT INTO data VALUES ( '%s', '%s');", name, signs)
if(result != RESULT_FAILED)
dbi_free_result(result)
[/php]
请注意
[php]
result = dbi_query(dbc, "SET NAMES 'utf8';")
[/php]
这样无论你是用图形界面软件浏览还是用AMXX写入或读取,都是正常的汉字,不会出现乱码
关于使用图形界面浏览的软件,个人推荐Navicat Lite for MySQL,无论是编辑还是备份、恢复,你都会感到愉快的 |
|