mysql读取中文标点时数据被截断 本帖最后由 y7429949 于 2013-09-09 15:24:49 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 CONVERT()将字符串值转为不同的字符集而你SET cc = HEX(pc); IF cc >= "8140" AND cc <="FEA0" THEN 显然 pc 就是 gbk 编码的了,还要转换干什么 每次在一行结尾遇到中文标点字符的时候存储过程就结束了。是不是在函数里的那个GBK编码问题,有个帖子说中文标点符号在gbk编码后,按 utf-8 编码规则,总是最后一个字节。所以游标就结束了???不懂,如果确实是这个情况,那应该怎么修改呢 hex()不是转换成十六进制吗,刚我测试了下,如果不用hex(),结果集根本就没有数据 不错 hex 是转16进制但 8140 到 FEA0 是 gbk 的内码范围,由此可知你的 pc 就是 gbk 编码的 gbk内码应该是二进制表示吧?这个转为16进制再比较应该是可以,我现在的情况就是一行可以正常转换成汉字,但我的目的是要整列都转,但在遇到某一行以中文标点符号结尾的时候,游标会自动终止,看了您一篇帖子说是gbk对汉字标点符号编码,按 utf-8 编码规则,总是最后一个字节。如果是这样的话,有没有办法可以在用了gbk编码,又可以在utf8编码的数据库中插入中文标点?斑竹,有没有什么好的解决办法吗?为了这问题找了几天资料了 我不太明白你的意思既然你的函数是按 gbk 编码书写的,那么与 utf8 有什么相关呢?另外 A000 到 AFFF 一段是 gbk 的符号区不存在拼音,直接跳过去就是了 你确定SELECT PY FROM pinyin WHERE hz=',' LIMIT 1有结果? 我用这函数可以对一行数据转换成拼音,不过如果是用上面那存储过程的话,在遇到一行以中文标点符号结尾时,游标会满足 “not found”而终止。我是看了你回复的一个帖子才知道gbk编码的中文标点,对应的utf8编码为最后一个字节,是不是游标在读取到以一个中文标点结尾的字符串时,因为数据库是utf8编码,所以游标就自动结束了? SELECT PY FROM pinyin WHERE hz=pin LIMIT 1 INTO pin;应该是这句吧??这个是有结果的,我有个拼音对应汉字的库,是可以把拼音查出来的,现在主要的问题是在遇到中文标点符号结尾时,游标自动终止了。感觉是GBK编码的问题,但不知道怎么解决。 是对着表查,但拼音中不止有汉字,还有别的比如拼音,标点,所以需要做个判断。现在是一行遇到中文标点符号结尾时,游标满足 not found 条件退出了。 php获取指定网站元素id值 中文字符串对比,含有标点符号, 求助啊!mysql表传到服务器的数据库后不正常 各位兄弟,我下的eWebEditor添加图片提示错误,是什么原因,帮忙看看啊 如何用PHP判断客户端的操作系统 百分拜求这个问题的解决 请大家推荐几个好的PHP学习资源站点 Undefined variable: _SESSION 是怎么回事? 哪位大神能用php写出来下面三题,求代码? 求大佬们赐教 关于根据“上海大学”搜索到 “上海交通大学” 这样的例子 GD 函数合成图片问题(一张jpg,一张png) 求正则表达式??
SET cc = HEX(pc);
IF cc >= "8140" AND cc <="FEA0" THEN 显然 pc 就是 gbk 编码的了,还要转换干什么
但 8140 到 FEA0 是 gbk 的内码范围,由此可知你的 pc 就是 gbk 编码的
既然你的函数是按 gbk 编码书写的,那么与 utf8 有什么相关呢?另外 A000 到 AFFF 一段是 gbk 的符号区不存在拼音,直接跳过去就是了
SELECT PY FROM pinyin WHERE hz=',' LIMIT 1
有结果?
这个是有结果的,我有个拼音对应汉字的库,是可以把拼音查出来的,现在主要的问题是在遇到中文标点符号结尾时,游标自动终止了。感觉是GBK编码的问题,但不知道怎么解决。