php代码中为解决乱码问题,执行数据库操作前执行了如下语句设置字符集:
mysql_query("SET NAMES utf8");结果在插入数据库中某字段数据时出现如下错误提示:
Incorrect string value: '\xB33\xB99[\xF9...' for column 'secret' at row 1secret字段为varchar类型 UTF-8编码
数据库默认字符集为 UTF-8如果将mysql_query("SET NAMES utf8");改为mysql_query("SET NAMES latin1");
则没有错误。插入的字符串由如下函数生成。是ASCII为0-255之间的一个长度为20的随机字符串。function mksecret($len = 20) {
$ret = "";
for ($i = 0; $i < $len; $i++)
$ret .= chr(mt_rand(0, 255));
return $ret;
}
UTF-8 应该涵盖了latin1字符集中的字符吧?为什么从latin1设为UTF-8时反而会提示有不可用字符呢?
UTF-8 处理不了ASCII中的控制符么?请大虾解答~万分感谢!!
mysql_query("SET NAMES utf8");结果在插入数据库中某字段数据时出现如下错误提示:
Incorrect string value: '\xB33\xB99[\xF9...' for column 'secret' at row 1secret字段为varchar类型 UTF-8编码
数据库默认字符集为 UTF-8如果将mysql_query("SET NAMES utf8");改为mysql_query("SET NAMES latin1");
则没有错误。插入的字符串由如下函数生成。是ASCII为0-255之间的一个长度为20的随机字符串。function mksecret($len = 20) {
$ret = "";
for ($i = 0; $i < $len; $i++)
$ret .= chr(mt_rand(0, 255));
return $ret;
}
UTF-8 应该涵盖了latin1字符集中的字符吧?为什么从latin1设为UTF-8时反而会提示有不可用字符呢?
UTF-8 处理不了ASCII中的控制符么?请大虾解答~万分感谢!!
解决方案 »
- Mysql如何修改字段下的所有记录
- 公司经常停电,数据库老是被挂,怎么办?
- 关于mysql的备份
- 请教:如何智能筛选重复数据?
- Linux下安装Mysql后,用windows2000连接不上,why?急急急急急急急急急急急急急急急急急急急急急急!
- !!!!!谁帮我解决我送谁100分!!!!本人在线等着答案!!!!
- file.sql导入数据的问题。求助。
- PHP和MYSQL的配置问题?急!!!!!!!!!!
- mysql innodb 外键的原理?
- 数据库端查询的表大小 和 实体物理文件的大小 相比较 差距较大
- 急~mysql adiministrator 不能编辑数据,error number2
- 论坛流量增大时,提示不能连接mysql,应该怎么解决?
+--------------------------+------------
-----+
| Variable_name | Value
|
+--------------------------+------------
-----+
| auto_increment_offset | 1
|
| character_set_client | utf8
|
| character_set_connection | utf8
|
| character_set_database | utf8
|
| character_set_filesystem | binary
|
| character_set_results | utf8
|
| character_set_server | utf8
|
| character_set_system | utf8
|
| character_sets_dir | E:\Program
ets\ |
+--------------------------+------------
-----+
9 rows in set (0.00 sec)mysql>