mysql+php问题

有两个字符串,如果用setnamesgbk那么第一段字符会乱码,如果用setnamesutf8那么如果插入的第二段字符是英文那没问题,但是如果是中文那么直接两段都插不进m... 有两个字符串,如果用set names gbk 那么第一段字符会乱码,如果用set names utf8 那么如果插入的第二段字符是英文那没问题,但是如果是中文那么直接两段都插不进mysql里。mysql的默认编码是utf8,求解这种怎么解决啊? 展开
 我来答
shenkebiao
推荐于2016-01-07 · TA获得超过605个赞
知道小有建树答主
回答量:367
采纳率:100%
帮助的人:151万
展开全部

关于编码统一,这里拿gbk 编码来举例;

1、首先,看文档流的编码是不是gbk,如果文档流不是gbk而文档内容是gbk,或者反之,会出现乱码现象;

2、在确定文档流是gbk 的情况下,检查文档内容是否是gbk 编码,要保持统一;也就是文档中的内容(尤其是非英文和数字,比如中文)必须是gbk 编码的中文而不是utf-8 编码或者其他编码的中文;

3、确定mysql  编码,通常使用 set names gbk就行了;

4、确定数据表的编码是否是gbk,如果表的编码不是gbk  而插入的数据是gbk,会出现乱码或者根本就插不进去;

查看数据表编码的方法:SQL:show create table table_name;

如果有建表的sql  语句,可以直接看建表时设置的是哪种编码,如下图是 utf8:



楼主仔细核对核对,看是哪个地方编码没有统一,如果编码都统一了还是出现乱码或者不能插入数据,那就说明不是数据编码的问题了。

可能是表结构,如果字段属性不是 字符串 类型的,那肯定无法去操作中文

匿名用户
2015-08-15
展开全部
mysqli_query('set names utf8')这句话是保证连接通道是utf8格式的,数据库默认是utf8的话,那就要检查你这个字段设计的是什么编码了,估计是西文编码,
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式