111222333 发表于 2008-6-11 10:26:53

Cr@zyTreE 发表于 2008-6-11 10:29:30

回复: 解决AMXX与MySQL中文问题

Post by 111222333
看到不少朋友在关心AMXX与MySQL中文问题,自己摸索了一下,把自己成功的经验拿出来讨论一下
有几种解决方法,我就谈一种比较合理的
一、关于安装,可采取默认,也可以在安装时选择UTF8编码
二、在创建数据库时,采用UTF8编码,如:
result = dbi_query(dbc, "CREATE TABLE IF NOT EXISTS `data` (`ID`VARCHAR(35),...PRIMARY KEY(`ID`))ENGINE=InnoDB DEFAULT CHARSET=utf8;")
PRIMARY KEY(`ID`)指定ID字段为主键...

好贴,含金量高,看过一定要顶。。。:D :D

tooya 发表于 2008-6-11 14:04:22

回复: 解决AMXX与MySQL中文问题

怎么个用法
弄了很久 不懂用在哪。。

css 发表于 2011-8-1 20:15:36

看到不少朋友在关心AMXX与MySQL中文问题,自己摸索了一下,把自己成功的经验拿出来讨论一下
有几种解决方法,我就谈一种比较合理的
一、关于安装MySQL,可采取默认,也可以在安装时选择UTF8编码
二、在创建数据库时,采用UTF8编码,如:
result = dbi_query(dbc, "CREATE TABLE IF NOT EXISTS `data` (`ID`VARCHAR(35),...PRIMARY KEY(`ID`))ENGINE=InnoDB DEFAULT CHARSET=utf8;")
PRIMARY KEY(`ID`)指定ID字段为主键,建议使用,可以提高效率;ENGINE=InnoDB DEFAULT CHARSET=utf8如果你省了这步,也可以,但默认安装了用图形界面软件浏览时汉字同样会是乱码
三、也是关键所在,在一次查询或一次写入时要注意编码转换,你可以采取
查询

...
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)

更新

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)

插入

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)

请注意

result = dbi_query(dbc, "SET NAMES 'utf8';")

这样无论你是用图形界面软件浏览还是用AMXX写入或读取,都是正常的汉字,不会出现乱码
关于使用图形界面浏览的软件,个人推荐Navicat Lite for MySQL,无论是编辑还是备份、恢复,你都会感到愉快的

shuyeshuye 发表于 2011-8-27 11:02:42

看不懂!!!
页: [1]
查看完整版本: 解决AMXX与MySQL中文问题