€这个符号我的可以存放进数据库,也能正确读取出来显示
版本:MySQL 5.0.18-nt不过ord('€')得到226,但是chr(226)却得不到[€]而是[ ]
好奇怪的问题!
版本:MySQL 5.0.18-nt不过ord('€')得到226,但是chr(226)却得不到[€]而是[ ]
好奇怪的问题!
解决方案 »
- [求教]php-pcntl如何让父进程不等待子进程及跨进程APC缓存共享
- php+mysql问题
- 在zend studio for eclipse中 新建了一个html文件,每次输入< 想继续输入form时 就死掉了,有人遇到过没有??咋办呢?
- 高手为我解答谷歌地图难题,,可恶的客户
- 寻求优化代码
- 百度也在用php
- 重金求购能在51.net上运行的php文件管理程序!!!!!!!!
- 用dbname.tablename的方式访问表会不会很慢???
- 求助,php中如何查询ms sql server中的ntext字段
- json返回值带函数名,PHP里怎么回调呢?
- HTML 表单 List/Menu的多行选择
- apache2.0与PHP5.2的配置问题
测试如下,我插入€的时候数据库自动转换为字符实体!mysql> select * from unitinfo;
+----+---------------------------+-----------+------
| id | unitname | position | sort
+----+---------------------------+-----------+------
| 4 | 这个字符€能不能显示 | 1234,4321 | AA
+----+---------------------------+-----------+------
1 row in set (0.00 sec)
mysql will truncate the text when the text contain GBK char:"0xA3A0" and "0xA1"
Allow to store and retrieve even unassigned GBK codes.
Like we did in Big5 earlier.
have_gbk.inc, have_gbk.require, ctype_gbk.result, ctype_gbk.test:
new file我看了mysql的bug列表,在5.0.11里解决了0xA3A0和0xA1的同类问题,可是我现在用的是5.0.24,存在0x80中断字符串的问题。
给你到处我数据库表结构你看看!DROP TABLE IF EXISTS `unitinfo`;
CREATE TABLE `unitinfo` (
`id` int(10) unsigned NOT NULL auto_increment,
`unitname` varchar(255) NOT NULL,
`position` varchar(255) NOT NULL,
`sort` varchar(255) NOT NULL,
PRIMARY KEY (`id`),
KEY `unitname` (`unitname`)
) ENGINE=MyISAM DEFAULT CHARSET=gbk;
insert into `test` ('testname') values ('abc€defg');结果写入的是'abc',从€开始的后半段消失了。
DROP TABLE IF EXISTS `test`;
CREATE TABLE `test` (
`testname` text NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=gbk;测试数据如下:mysql> select * from test;
+-----------------------------+
| testname |
+-----------------------------+
| € |
| 测试€能不能插入数据库 |
+-----------------------------+
2 rows in set (0.00 sec)
会提示ERROR 1406 (22001): Data too long for column 'testname' at row 1我就不明白你为什么要在命令行下插入€?
数据不都是从表单提交插入到数据库的吗?
测试的时候可以这样,可是投入使用的时候,数据库服务器你一定能用命令行去操作?
我测试的时候输入的数据全部是在表单里头!
在表单的文本框输入 abc€defg 全部都能插入到数据库!
但是插入到数据库中就显示为abc€defg!
你说的:没说过要在命令行下试,是不是这个意思?PS:CSDN的帖子内容我显示正常,显示
郁闷。mysql5出了个bug,€这个符号写不进去。有没有可能他们在显示帖子内容的时候将字符实体显示为原来的符号?
让我输入的€无法显示!
哥们,说完吃饭去了!
要不等唠叨老大来给看看?
然后读取数据库后,输出到浏览器是€,在浏览器页面显示的是€!
http://lists.mysql.com/internals/27483
4.1以后就对存入库里字符的编码进行了拆分&判断,如果超过预设编码长度将提示字符太长
显然这个拆分目前还有问题,估计它使用<=127作为判断的,因为双字节字符肯定能存单字节字符;gbk比较头疼的就是两个字节里面后一个可能是ascii码