php写入mysql中文乱码问题解决办法

php中关于mysql的操作非常简单,然而最近在做一个小工具的时候发现php写入mysql的数据库中出现了中文字符的乱码,这个乱码的问题纠结了我好久,明明英文字符写入正常,但是中文就是乱码!

一开始我感觉是我建立mysql数据库的时候没有设置UTF-8字符集,然而后来我发现即使我设置了这个字符集还是不能解决问题,写入mysql的字符串照样乱码。

解决这个问题其实很简单.

1.在建表的时候设置编码类型为gb2312_chinese_ci.

2.在PHP页面的数据库连接语句加一行mysql_query("SET NAMES 'gb2312'",$link); 例如

 代码如下 复制代码

$db_host="localhost";
$db_user="root";
$db_password="password";
$db_name="test";

$link=mysql_connect($db_host,$db_user,$db_password);
mysql_query("SET NAMES 'gb2312'",$link);
$db=mysql_select_db($db_name,$link);
$query="select * from user";
$result=mysql_query($query);

写入页面和读取页面都加入这行.这样在MYSQL里面的中文就能正常显示了.

另外种办法修改配置文件my.cnf

 代码如下 复制代码

[mysqld]

default-character-set=utf8

重新启动MYSQL改过 这个改了就是把 character_set_server    设成utf8

好了到这些关于php写入mysql中文乱码问题就解决了,当然我们主要是注意页面与数据库之间的编码然后使用mysql_query()进行设置。

时间: 2024-12-09 08:37:32

php写入mysql中文乱码问题解决办法的相关文章

常见php与mysql中文乱码问题解决办法_Mysql

乱码问题1:用PHPmyAdmin操作MySQL数据库汉字显示正常,但用PHP网页显示MySQL数据时所有汉字都变成了?号. 症状:用PHPmyAdmin输入汉字正常,但当PHP网页显示MySQL数据时汉字就变成了?号,并且有多少个汉字就有多少个?号. 原因:没有在PHP网页中用代码告诉MySQL该以什么字符集输出汉字. 解决方法: 1.网页文件head设置编码<meta http-equiv="Content-Type" content="text/html; cha

MySql中文乱码问题解决办法

方法一,有服务器管理权限的修改方法 查看数据库各级别字符集支持  代码如下 复制代码 mysql> SHOW VARIABLES LIKE character_set_%'; mysql> SHOW VARIABLES LIKE collation_%'; 修改my.ini文件,通常只需要修改客户端和服务端的编码就可以了, 找到并修改:  代码如下 复制代码 客户端:default-character-set=utf8 服务端:character-set-server=utf8 如果是gb23

smarty截取中文乱码问题解决办法

smarty截取中文乱码问题解决办法 本文章提供了三款smarty截取中文乱码问题解决办法,关于乱码主要是在中文汉字中的处理了,我们利用了uft-8,gb2312等字符内码机制来截取字符串. */ function smarty_modifier_utruncate($string, $length = 80, $etc = '...',                                     $break_words = false, $middle = false)   { 

Docker容器 日志中文乱码问题解决办法_docker

Docker容器 日志中文乱码问题解决办法 1. 找到dockerfile文件, 如 /use/local/src/Docker/Dockerfile 2. 编辑Dockerfile 添加 ENV LANG en_US.UTF-8 ENV LANGUAGE en_US:en ENV LC_ALL en_US.UTF-8 3. 生成新的镜像文件 docker build -t centos7 . 4. 使用docker images查看新生成的镜像 5. 使用新的镜像启动容器 docker run

数据库 MySQL中文乱码解决办法总结

MySQL中文乱码解决办法 前言: MySQL是我们项目中非常常用的数据型数据库.但是因为我们需要在数据库保存中文字符,所以经常遇到数据库乱码情况.下面就来介绍一下如何彻底解决数据库中文乱码情况. 1.中文乱码 1.1.中文乱码 create table user(name varchar(11)); # 创建user表 insert into table user("carl"); # 添加数据 select * from user; insert into user value(&

彻底解决mysql中文乱码的办法

MySQL会出现中文乱码的原因不外乎下列几点: 1.server本身设定问题,例如还停留在latin1 2.table的语系设定问题(包含character与collation) 3.客户端程式(例如php)的连线语系设定问题 强烈建议使用utf8!!!! utf8可以兼容世界上所有字符!!!! Linux下Mysql插入中文显示乱码解决方案 mysql -uroot -p 回车输入密码 进入mysql查看状态如下: mysql不能插入中文 默认的是客户端和服务器都用了latin1,所以会乱码.

windows环境下Mysql中文乱码问题解决方法_Mysql

最近开发项目中又重新拿起了Mysql,在搭建环境的时候遇到了中文乱码问题.下面我把我的解决方式跟大家分享一下 1.通过show VARIABLES like 'character_%'; 显示出来所有的设置项目.把其中的非UTF8的编码都设置成utf8 设置方式如 : set character_set_server=utf8; 2.去mysql 安装目录下找到my.ini文件.设置里面的latin1为utf8 3.另外如果在Java端通信数据的时候发生了乱码的话就response.setCha

python在eclipse下中文乱码问题解决办法

关于编辑环境编码 首先要确保eclipse编辑器环境的编码为utf8,这个是大前提:其次如果py文件中含有中文字符的话,需要在py文件 中对编码进行声明. 1. 修改eclipse编辑器编码 a) window->preferences->general->editors->text editors->spelling->encoding->UTF-8 b) window->preferences->workspace->text file en

Perl向MySQL插入中文乱码问题解决办法

当使用DBI向MySQL插入中文时,数据库中中文会显示乱码(即使表的编码为utf8),需要在插入语句前读取语句前添加编码设置 先说MySQL的字符集问题.Windows下可通过修改my.ini内的 # CLIENT SECTION [mysql] default-character-set=utf8 # SERVER SECTION [mysqld] default-character-set=utf8 这 两个字段来更改数据库的默认字符集.第一个是客户端默认的字符集,第二个是服务器端默认的字符