解决PHP+mysql处理中文乱码的独家方案

合集下载

PHP调用MySQL汉字显示为乱码

PHP调用MySQL汉字显示为乱码

PHP调用MySQL汉字显示为?用PHP,看重的是它的功能强大,尝试着联了一下数据库,晕,汉字都变成?了,以前做的时候可没有这种现象,怎么版本高了,倒出问题了。

我以前用的是PHP4,好想是清华大学出版社的,随书带了一张盘,有相关文件,执照书上介绍的方法安装之后一切正常,现在是怎么回事呢?我是在朋友的店里调试的,这没有IIS,我用的是AppServ+Dreamweaver,汉字变?,也许是系统版本的问题,回到家之后,在机器上调试了一下,一切正常,难道只能在IIS上正常显示吗?那不用IIS的就没的玩了。

在网上搜集了许多相关的资料,按照上面介绍的去尝试,终于找到了办法。

有的网友说的对,就是没有把解决的办法说清楚,导致看了也没看懂。

<?php//创建连接$cn=@mysql_connect('localhost','root','**********') or die("不能连接数据库服务器");// 设置显示为GB2312mysql_query("SET NAMES 'GB2312'");$strSQL="select * from table";// 发送strSQL语句$result=mysql_db_query("database",$strSQL,$cn);…………………………………………?>上面红色的那句至关重要,没有它,显示可能就会出问题。

有很多网页都提到了这句,但没有说明它所在的位置,放在<?php 之后是不行的,放在数据库连接语句之后就正常了。

这是我的解决办法,希望大家沟通。

php和mysql中uft-8中文编码乱码的几种解决办法

php和mysql中uft-8中文编码乱码的几种解决办法

php和mysql中uft-8中⽂编码乱码的⼏种解决办法PHP页⾯转UTF-8编码问题1.在代码开始出加⼊⼀⾏:复制代码代码如下:header("Content-Type: text/html;charset=utf-8");2.PHP⽂件编码问题点击编辑器的菜单:“⽂件”->“另存为”,可以看到当前⽂件的编码,确保⽂件编码为:UTF-8,如果是ANSI,需要将编码改成:UTF-8。

3.PHP⽂件头BOM问题:PHP⽂件⼀定不可以有BOM标签否则,会出现session不能使⽤的情况,并有类似的提⽰:Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent这是因为,在执⾏session_start() 的时候,整个页⾯不能有输出,但是当由于前PHP页⾯存在BOM标签,PHP把这个BOM标签当成是输出了,所以就出错了!所以PHP页⾯⼀定要删除BOM标签删除这个BOM标签的⽅法:1.可以⽤Dreamweaver打开⽂件,并重新保存,即可以去除BOM标签!2.可以⽤EditPlus打开⽂件,并在菜单“⾸选项”->“⽂件”->"UTF-8标识",设置为:“总是删除签名”,然后保存⽂件,即可以去除BOM标签!4.PHP以附件形式保存⽂件的时候,UTF-8编码问题:PHP以附件形式保存⽂件,⽂件名必须是GB2312编码,否则,如果⽂件名中有中⽂的话,将是显⽰乱码:如果你的PHP本⾝是UTF-8编码格式的⽂件,需要将⽂件名变量由UTF-8转成GB2312:iconv("UTF-8", "GB2312", "$filename");利⽤程序来实例字符截取⽅法复制代码代码如下:function utf8_substr($str,$len){ for($i=0;$i<$len;$i++) { $temp_str=substr($str,0,1); if(ord($temp_str) > 127){ $i++; if($i<$len){ $new_str[]=substr($str,0,3); $str=substr($str,3); } }else { $new_str[]=substr($str,0,1); $str=substr($str,1); } } return join($new_str);}MYSQL数据库使⽤UTF-8编码的问题1.⽤phpmyadmin创建数据库和数据表创建数据库的时候,请将“整理”设置为:“utf8_general_ci”或执⾏语句:复制代码代码如下:CREATE DATABASE `dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;创建数据表的时候:如果是该字段是存放中⽂的话,则需要将“整理”设置为:“utf8_general_ci”,如果该字段是存放英⽂或数字的话,默认就可以了。

Mysql常见中文乱码及解决方案

Mysql常见中文乱码及解决方案

Mysql常见中⽂乱码及解决⽅案
在Mysql中会经常碰到中⽂乱码问题,与oracle相⽐,不但库拥有字符集,连表,或字段都拥有⾃⼰的字符集
导致我们在查询,新增记录时出现各种各样的乱码,或者是⾃⼰的终端上没有问题,在其它终端连接就会出现问题。

常见乱码分析:
1,登录⽅式,导致的中⽂乱码:
2,操作系统语⾔集:
$ cat /etc/sysconfig/i18n
显⽰UTF-8格式,也可以使⽤:
$ echo $LANG
可以使⽤ export LANG=C 进⾏修改。

但是重新登录后,乱码依然:
3,⽂件格式导致的中⽂乱码:
此时,在执⾏SQL脚本时就会报错:
这个解决⽅案,是将⽂件修改成utf-8格式,或者在VI中修改:
:set fileencoding=utf-8
在MYSQL中,⼀个汉字占3个字节,如何避免乱码:
1,编辑⽂件时,指定与数据库相同字符集,⽐如gbk
2,在初始化数据库时,对库的字符集,表,以及字段进⾏统⼀编码设置,⽐如gbk
3,在代码中,指定字符集:
mysql_set_character_set(mysql, "utf8");
或者执⾏:
mysql_query('SET NAMES UTF8')。

MySQL中文乱码问题的解决方法

MySQL中文乱码问题的解决方法

MySQL中文乱码问题的解决方法在使用MySQL数据库过程中,经常会遇到中文乱码的问题。

这是由于MySQL默认使用的字符集是Latin1,而大部分中文系统使用的是UTF-8字符集所致。

本文将介绍在MySQL中解决中文乱码问题的几种方法。

一、修改MySQL配置文件MySQL配置文件(f)是MySQL服务器的设置文件,通过修改该文件可以改变MySQL的默认字符集。

在Linux系统中,该文件通常位于/etc/mysql/f或者/etc/f。

在Windows系统中,该文件通常位于MySQL安装目录下的my.ini文件。

步骤如下:1. 找到f或my.ini文件并打开。

2. 在[mysqld]部分添加或修改以下内容:```[mysqld]character-set-server=utf8collation-server=utf8_general_ci```3. 保存文件并重启MySQL服务。

二、修改数据库、数据表、字段字符集如果修改MySQL配置文件没有解决中文乱码问题,可以尝试直接修改数据库、数据表、字段字符集。

1. 修改数据库字符集可以使用ALTER DATABASE语句修改数据库的字符集。

例如:```ALTER DATABASE database_name CHARACTER SET utf8 COLLATEutf8_general_ci;```2. 修改数据表字符集可以使用ALTER TABLE语句修改数据表的字符集。

例如:```ALTER TABLE table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;```3. 修改字段字符集可以使用ALTER TABLE语句修改字段的字符集。

例如:```ALTER TABLE table_name MODIFY column_name VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci;```其中,table_name为表名,column_name为字段名。

mysql彻底解决输入和显示中文字段乱码问题

mysql彻底解决输入和显示中文字段乱码问题

1、mysql中文乱码问题有两个,第一个是客户端的中文输入乱码问题,第二个是在黑窗口显示结果时乱码。

第一个问题需要设置客户端client和连接connection的编码为:GBK;
第二个问题需要设置结果显示results的编码为:GBK;
先查询现在的编码:
然后修改编码:
但是这样的改变是动态的,也就是当下一次性的,如果下次重启了数据库,其编码有会恢复为原来的样子了。

----------------------------------------彻底解决中文乱码问题------------------------------------------------------------
1、先得找到 .ini 数据库配置文件。

在Mysql 5.5版本以下的旧版本,.ini 文件可以直接在Mysql的安装目录中找到。

在Mysql 5.5及以上的新版本,.ini 文件就需要在C:\ProgramData\MySQL\MySQL Server 5.5中才能找到!
但C盘下的ProgramData目录是隐藏的,所以先选择显示隐藏项目:
修改.ini 文件中的[mysql] 下面的default-character-set = gbk
这种修改方法是静态的,不管是否重启,都有效。

自-Mysql中文乱码问题完美解决方案

自-Mysql中文乱码问题完美解决方案

转载:Mysql中文乱码的解决方法第一种方法,很精辟的总结:经常更换虚拟主机,而各个服务商的MYSQL版本不同,当导入数据后,总会出现乱码等无法正常显示的问题,查了好多资料,总结出自己的一点技巧:WINDOWS 下导入应该这样使用MYSQL的命令在DOS 命令下进入mysql的bin目录下,输入mysql -uroot -p密码数据库名称<要恢复的数据库, 例如我们要把D盘的一个名称为test.sql的数据库恢复到本地的test2这个数据库,那么就这样: mysql -uroot -p密码test2以前的国外主机用的Mysql是4.x系列的,感觉还比较好,都无论GBK和UTF-8都没有乱码,没想到新的主机的Mysql是5.0版本的,导入数据后,用Php读出来全是问号,乱码一片,记得我以前也曾经有过一次切换出现乱码的经验,原因肯定是Mysql版本之间的差异问题。

只好查资料,发现了一个解决方法,就是在mysql_connect后面加一句SET NAMES UTF8,即可使得UTF8的数据库消除乱码,对于GBK的数据库则使用SET NAMES GBK,代码如下:$mysql_mylink = mysql_connect($mysql_host, $mysql_user, $mysql_pass);mysql_query("SET NAMES 'GBK'");数据库字符集为utf-8连接语句用这个mysql_query("SET NAMES 'UTF8'");mysql_query("SET CHARACTER SET UTF8");mysql_query("SET CHARACTER_SET_RESULTS=UTF8'");还有个方法就是,如果你自己的机器的话,可以更改MYSQL字符集,一般在MYSQ4和MYSQL5这两个版本中有效。

PHP连接MySQL查询结果中文显示乱码解决方法

PHP连接MySQL查询结果中文显示乱码解决方法

PHP连接MySQL查询结果中⽂显⽰乱码解决⽅法我们⾸先假设数据库中采⽤的编码为UTF-8这时我们在PHP页⾯中应当⾸先添加复制代码代码如下:<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />此处charset的值utf-8必须与⽂件保存时的编码类型⼀样之后在数据库查询前添加复制代码代码如下:mysql_query("set names 'utf8'");该⾏语句的编码值也应当与上⾯的编码值⼀样。

总⽽⾔之,⽹页保存的编码类型、⽹页的charset=utf-8、和执⾏的set names utf8语句的编码⽅式应当⼀致MySQL的“SET NAMES x”字符集问题分析近来接受BBT的培训,做⼀个投票系统。

系统代码倒不是很难,但是我的时间主要花费在了研究字符集和编码上⾯。

MySQL 和Apache两个系统的编码(字符集)问题让我费劲脑筋,吃尽苦头。

⽹上对这些问题的解决⽐较零散,⽐较⽚⾯,⼤部分是提供解决⽅法,却不说为什么。

于是我将这⼏天收获总结⼀下,避免后来者再⾛弯路。

这篇⽂章对PHP编写有⼀点帮助(看完你就知道,怎样让你的PHP程序在⼤部分空间提供商的服务器⾥显⽰正常),但是更多帮助在于⽹络服务器的架设和设置。

先说MySQL的字符集问题。

Windows下可通过修改my.ini内的1.# CLIENT SECTION2.[mysql]3.default-character-set=utf84.# SERVER SECTION5.[mysqld]6.default-character-set=utf8这两个字段来更改数据库的默认字符集。

第⼀个是客户端默认的字符集,第⼆个是服务器端默认的字符集。

假设我们把两个都设为utf8,然后在MySQL Command Line Client⾥⾯输⼊“show variebles like “character_set_%”;”,可看到如下字符:character_set_client latin1character_set_connection latin1character_set_database utf8character_set_results latin1character_set_server utf8character_set_system utf8其中的utf8随着我们上⾯的设置⽽改动。

php中文乱码问题的解决方案

php中文乱码问题的解决方案

php中文乱码问题的解决方案php中文乱码问题的解决方案乱码是我们在开发可能经常遇见,也是最让人头疼的一个问题了,下面是店铺分享的php中文乱码问题的解决方案,一起来看一下吧。

第一种:解决HTML中中文乱码问题方法如果你的HTML文件文件出现了乱码问题,那么你可以在head 标签里面加入UTF8编码(国际化编码):UTF-8是没有国家的编码,也就是独立于任何一种语言,任何语言都可以使用的。

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>示例我们现在的HTML5文件,设置编码更为简单,像下面这样第二种、HTML和PHP混合的页面解决方案如何是HTML和PHP混编,除了按照第一个方法所说的操作之外,还需要在PHP文件的最上面加入这句代码:<?phpheader("content-type:text/html;charset=utf-8"); //设置编码>第三种、纯PHP页面的中文乱码问题(数据是静态的)如果你的PHP页面出现了乱码,只需要在页面的开始处加入下面代码就可以了。

<?phpheader("content-type:text/html;charset=utf-8"); //设置编码>第四种、PHP+Mysql中文乱码问题这个除了按照第三种所说的操作之外,还要在你的数据查询/修改/增加之前加入数据库编码。

而且,值得注意的是,这里的'UTF8和之前的不一样,中间是没有横线的。

<?phpmysql_query('SET NAMES UTF8');//接下来的就是查出数据或者修改,增加>如何你使用的MySQL版本在 4.1或更高版本,可以在链接数据库操作后,设置一个字符编码,像下面这样UTF-8编码只是其中一种编码,如果不想使用utf-8编码,也可以使用其他编码,只需将UTF-8换成你想使用的编码就可以,目前中文网站开发中主要用的是GB2312和UTF-8 两种编码。

Mysql彻底解决中文乱码问题的...

Mysql彻底解决中文乱码问题的...

Mysql彻底解决中⽂乱码问题的...mysql 中常常出现对中⽂⽀持不友好的情况常见的错误 “Illegal mix of collations for operation”下⾯我们规整⼀下 mysql 数据库中⼀共涉及到哪些字符集character-set-server/default-character-set:服务器字符集,默认情况下所采⽤的character-set-database:数据库字符集character-set-table:数据库表字符集⼀般情况下只需要设置character-set-server,⽽在创建数据库和表时不特别指定字符集,这样统⼀采⽤character-set-server字符集.character-set-client:客户端的字符集character-set-results:结果字符集在客户端,如果没有定义character-set-results,则采⽤character-set-client字符集作为默认的字符集下⾯分享⼀个解决mysql 中⽂字符乱码的解决⽅案:修改mysql 配置vim /etc/mysql/f查找 “client” ⼀项:上⾯黄⾊关键词就是我们要找的 client, 紧接着在下⾯添加⼀⾏: default-character-set=utf8保存退出配置⽂件.然后关闭mysql服务,重新启动./etc/init.d/mysql stop/etc/init.d/mysql start然后我们进⼊ mysql ,查看字符集mysql> show variables like 'character\_set\_%';+--------------------------+--------+| Variable_name | Value |+--------------------------+--------+| 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 |+--------------------------+--------+7 rows in set (0.00 sec)上⾯结果可以看到字符集默认⽀持 utf8,我们在涉及到汉字的时候不会有乱码的情况.以上所述是⼩编给⼤家介绍的Mysql彻底解决中⽂乱码问题的⽅案(Illegal mix of collations for operation),希望对⼤家有所帮助,如果⼤家有任何疑问请给我留⾔,⼩编会及时回复⼤家的。

PHP中文乱码解决总结

PHP中文乱码解决总结

关于PHP和MySQL出现乱码的解决办法最近几天一直在做贴吧的小项目,跟着十八老师的视频学着,中间也遇到不少问题,我查了不少资料最后都一一解决了。

下面详细分类说明各种乱码的处理方法。

简单地讲乱码的产生和各个环节里面设置的编码类型不匹配有关,这里的乱码主要都是指的中文显示的乱码。

(下面没有特指都是说中文显示乱码)。

我先根据发生乱码的位置来划分。

如果是需要快速查找解决方法的可以直接根据错误位置来查阅本文(根据编号快速查找)。

1.网页显示中文乱码。

2.PHPmyadmin中显示乱码。

3.控制台显示中文乱码。

如果是想详细了解各种情况的童鞋可以耐心阅读本文。

1.第一种在一般网页页面上显示中文出现乱码。

这个主要要改一下页面显示编码设置,如果是PHP文件,则在其中加上一句:header("Content-Type: text/html; charset=utf-8");并且要注意保存PHP文件的时候选择编码为utf8.如图所示在你需要显示的PHP后缀的页面中加上就可以,当然一般来说如果是比较多页面都要设置,一个个去添加很麻烦,就在初始化文件里面最后添加就可以加载到所有需要的文件了。

如果是静态页面(求别喷,很可能有静态页面的说),在页面<head></head>标签之间加上一句:<meta charset="utf-8">。

改完后页面的显示中文就能正常。

Utf8编码格式和gbk格式都是目前中文网站显示所用的编码,所以将charset改为utf即可。

2.第二种在MySQL图形化界面中文数据的显示。

在如PHPmyadmin里面也有可能出现中文乱码。

前面也说了要把PHP文件编码保存为utf8,所以相对应的MySQL的相关字符集的设置也要改成utf8;这里有几种方式可以供选择。

第一种治标不治本。

在需要进行数据库操作的PHP文件里,加上下面几句:mysql_query('set character_set_client = utf8');//设置client的字符集为utf8mysql_query('set character_set_connection = GBK');//s设置连接字符集为gbkmysql_query('set character_set_results = utf8');//设置最后结果的字符集为utf8当然作为程序员来说,如果一个添加留言的页面需要录入中文,一个修改留言的页面也需要中文的录入数据库,每个文件里都必须加,一个个写也是很烦躁的事,建议还是写到初始化文件(比如我写的init.php)里面,其他文件都会自行加载。

解决PHP+mysql处理中文乱码的独家方案

解决PHP+mysql处理中文乱码的独家方案

心之所向,所向披靡解决PHP+mysql处理中文乱码的独家方案本方案适用于所有页面文件均为php(已成功测试过),如果有混合文件读者可以亲自测试。

问题现象如下图,1所示为修复过的头部引用文件header.php,中文能正常显示,2所示为未修复过的standard.php页面文件。

一、为了解决问题,首先应该设置数据库的字符编码,如下图所示,本例将所有编码设置为UTF-8。

同样将数据库中的所有表的字符编码设置成UTF-8。

这样,数据库中可以正常显示中文字符了,如下图所示。

如果要导入外来数据,也要设置好字符编码,对于非mysql数据库的导入(如从ACCESS数据库中导入),需要设置分隔字段的字符,然后执行便可,如下图所示。

----------------------------------------二、数据库的字符编码完成后,便要将页面文件的编码设置好。

这里的要点有如下三点(红色为说明文字):为了实现上述三点要求,本例采用的方案如下:1.创建一个数据库连接文件conn.php ,其中在开头设置header 编码,并在创建数据连接后设置SQL 请求的编码,如下图所示:2.设置页面文件的文件类型。

可以在页面文件中的<head>标签中设置字符编码。

2.1如果之前的字符编码为gb2312,则该文件类型为ANSI (本例使用DW 和notepad++软件,读者也可用UE 编辑软件,只不过类型显示名称不一样而已),如下图所示:2.2将<head>标签的编码设置成utf-8并保存文件后,再次打开,会发现文件类型变成了ANSI as UTF-8,如下图所示:3.在页面的首行引入数据链接文件conn.php,可以保证conn.php中的header 设置字符编码成功有效,否则中文仍会出现乱码,如下图所示:最后,就完成了字符编码的设置,看看成功后的页面吧(如下图),中文全部正常显示出来了,是不是很神奇,赶快动动手来实现吧!Ps:另外提一句,如果你想让页面的字符编码设为其他类型(如GBK),则可评论,观念,各有不同做好自己那份就好以按上述方案将所有的编码类型设置为GBK即可。

如何解决MySQL中文乱码和字符集问题

如何解决MySQL中文乱码和字符集问题

如何解决MySQL中文乱码和字符集问题MySQL是一种开源的关系型数据库管理系统,被广泛用于各种业务应用和网站开发中。

然而,在处理中文字符时,MySQL往往会遇到乱码和字符集问题,给使用者带来很多麻烦。

本文将探讨如何解决MySQL中文乱码和字符集问题,并提出一些优化建议。

一、了解字符集和字符编码在解决MySQL中文乱码和字符集问题之前,我们首先需要了解一些基本概念,即字符集(Character Set)和字符编码(Character Encoding)。

字符集是一种规范,用于定义字符的集合和字符的规则。

常见的字符集有ASCII、UTF-8、GBK等。

字符编码是字符集在计算机中存储和传输的方式。

常见的字符编码有ASCII、UTF-8、UTF-16、GB2312等。

二、设置数据库、表和字段的字符集和字符编码解决MySQL中文乱码和字符集问题的第一步是正确设置数据库、表和字段的字符集和字符编码。

1. 设置数据库字符集和字符编码在创建数据库时,可以指定数据库的字符集和字符编码。

例如:CREATE DATABASE mydb DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;这样,数据库的字符集就被设置为utf8mb4,字符编码则是utf8mb4_unicode_ci。

确保数据库的字符集和字符编码与应用程序及其它组件保持一致。

2. 设置表的字符集和字符编码在创建表时,也可以指定表的字符集和字符编码。

例如:CREATE TABLE mytable (id INT,name VARCHAR(30)) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;这样,表的字符集和字符编码与数据库保持一致。

3. 设置字段的字符集和字符编码在创建字段时,可以指定字段的字符集和字符编码。

例如:CREATE TABLE mytable (id INT,name VARCHAR(30) CHARACTER SET utf8mb4 COLLATEutf8mb4_unicode_ci);这样,字段的字符集和字符编码与表保持一致。

彻底解决mysql中文乱码

彻底解决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("哈哈");⽆法插⼊中⽂字符:1.2、查看表字符编码mysql> show create table user \G;*************************** 1. row ***************************Table: userCreate Table: CREATE TABLE `user` (`name` varchar(11) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=latin11 row in set (0.00 sec)我们能够看到表的默认字符集是latin1.所以我们在创建表的时候就须要指定表的字符集:create table user(name varchar(11)) default charset=utf8;这样在Linux⾥⾯能够訪问并且能够插⼊与訪问这个表了。

1.3、数据库与操作系统编码尽管在服务器端能够显⽰中⽂正常,可是在客户端可能会显⽰乱码。

由于我们的服务器是UTF8。

并且数据库的编码也存在问题。

这⾥我们能够看character_sert_database与character_set_server的字符集都是latin1.那么在mysql数据库中,server,database,table的字符集都默认是latin1.以下我们就来看看怎样解决mysql乱码情况。

php向mysql插入数据出现乱码的解决方法

php向mysql插入数据出现乱码的解决方法
下面总结一下这个乱码问题的解决:
1.确认所有页面都统一使用同样的编码,强烈建议用utf-8;
2.
在用mysql_query作查询时无论是写入names
charset(像这样:$sql=xxxx..;mysql_query("set names
'utf8'");mysql_query($sql).......,需要注意的是设置要在前,而且不要把这时的utf8写成utf-8!).
ok,设置了mysql_query("set names 'charset'")之后,就不再出类似以下问题:
1.用php写入数据到mysql用phpmyadmin查看时中文变成了一堆不知所云的乱码;
php插入数据到mysql出现中文乱码的一种解决方法
天杀的中文乱码又在php中出现了...曾几何时在学习asp时就碰到它了,一大问题就是它将严重影响ajax的应用~以至于现在一碰到它我就头疼不已,到现在为止在asp中碰到的字符编码问题我还没解决(也许是我比较笨一点吧 ).....
今天试着玩玩php,用php向mysql中写数据,在Dreamweaver中进行时先设置了首选参数中的编码为utf-8,前后台页面都统一用utf-8(mysql默认就是用的utf-8,那就不必改了 ),但是一碰到向数据库里写的数据中有中文,打开phpmyadmin一看中文全是乱码,于是用Google大神一遍遍的搜救命方法,看到有同志提到设置mysql_query中的"set names charset",加入它,然后就ok了,乖乖中文又回来了..
2.用php写入到mysql的中文在phpmyadmin中查看正常,但提出来显示到网页中时全都变成了"?????".

MySQL中文乱码问题完美解决方案

MySQL中文乱码问题完美解决方案

MySQL中文乱码问题完美解决方案解决乱码的核心思想是统一编码。

我们在使用MySQL 建数据库和建表时应尽量使用统一的编码,强烈推荐的是 utf8 编码,因为该编码几乎可以兼容世界上所有的字符。

数据库在安装的时候可以设置默认编码,在安装时就一定要设置为 utf8 编码。

设置之后再创建的数据库和表的时候,如果不指定编码,默认都会使用 utf8 编码,省去了很多麻烦。

数据库软件安装好之后可以通过如下命令查看默认编码:1.查询数据库软件使用的默认编码格式show variables like “%colla%”;show varables like “%char%”;其中collation,代表了字符串排序(比较)的规则,如果值是utf8_general_ci,代表使用utf8 字符集大小写不敏感的自然方式比较。

如果character_set 的值不为utf8,那么可以使用如下命令修改为 utf8。

2.修改数据库默认编码为 utf8SET character_set_client='utf8';SET character_set_connection='utf8';SET character_set_results='utf8';如果不想设置数据库软件的全局默认编码,也可以单独修改或者设置某个具体数据库的编码也可以单独修改或设置某个数据库中某个表的编码。

3.创建数据库的时候指定使用 utf8 编码CREATE DATABASE `test`CHARACTER SET 'utf8'COLLATE 'utf8_general_ci';4.创建表的时候指定使用 utf8 编码CREATE TABLE `database_user` (`ID` varchar(40) NOT NULL default '',`UserID` varchar(40) NOT NULL default '',) ENGINE=InnoDB DEFAULT CHARSET=utf8;如果数据库已经创建好了,可以使用 show database 数据库名;和 show create table 表名;查看一下数据库和表的字符集是否为 utf8 ,如果不是则在命令行下面可以用如下命令,将数据库和表编码修改为 utf8.5.修改具体某数据库或表的编码ALTER DATABASE `db_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;ALTER TABLE `tb_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;。

PHP+MySQL程序开发中的乱码产生原因及解决方案分析

PHP+MySQL程序开发中的乱码产生原因及解决方案分析

145由上表可知网络规模过大时,传统方法网络利用率非常不均衡,而本文设计方法则都可以控制在80%以内,最大链路利用率相比传统方法减少了13%。

4 结语本文设计方法利用混合粒子群算法为用户流量需求分配路径,在满足网路基本性能和服务质量约束的基础上,实现了负载均衡的目标,并通过对比实验验证了此均衡方法的可行有效性。

但本文方法忽视了网络环境的路由优化,今后会对路由路径下发底层交换机的过程作进一步研究。

【参考文献】[1]李明,袁敏,付康为等.基于粒子群优化算法的R P L 负载均衡研究[J].传感技术学报,2020,33(03):429-435.[2]白雪,杨桂芹.基于SDN 的两级大象流负载均衡策略[J].兰州交通大学学报,2020,39(01):56-61.作者简介:李红艳(1991- ),女,河南商丘人,硕士研究生,研究方向:数据挖掘。

1 引言在基于PHP+MySQL 的Web 开发中,开发人员经常因中文乱码所困惑,影响开发进度。

同样的问题也存在于其他非英文地区的软件本地化过程中,每个国家或地区都规定了计算机信息交换用的字符编码集[1],如美国的扩展ASCII 码、中国的GB2312及GB 编码的扩展字符编码GBK、日本的Shift_JIS、EUC-JP、ISO-2022-JP 编码等,本地化编码处理有关的问题在程序应用开发中困扰着程序员。

2 概述理解字符乱码的原因,首先要了解一些字符集和字符编码解码的概念。

字符是各种文字和符号的总称,包括各国家文字、数字、标点符号、图形符号等。

字符集是多个字符的集合,且种类较多,PHP+MySQL 程序开发中常用的字符集有[2]:2.1 ASCII 码ASCII 码是美国国家信息互换标准码,大致由三部分组成:(1)ASCII 打印字符;(2)ASCII 非打印控制字符;(3)扩展ASCII 打印字符。

ASCII 码是计算机中使用最广泛的字符集,是计算机硬件和软件系统中实现数据传输的国际标准。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

解决PHP+mysql处理中文乱码的独家方案
本方案适用于所有页面文件均为php(已成功测试过),如果有混合文件读者可以亲自测试。

问题现象如下图,1所示为修复过的头部引用文件header.php,中文能正常显示,2所示为未修复过的standard.php页面文件。

一、为了解决问题,首先应该设置数据库的字符编码,如下图所示,本例将所有编码设置为UTF-8。

同样将数据库中的所有表的字符编码设置成UTF-8。

这样,数据库中可以正常显示中文字符了,如下图所示。

如果要导入外来数据,也要设置好字符编码,对于非mysql数据库的导入(如从ACCESS数据库中导入),需要设置分隔字段的字符,然后执行便可,如下图所示。

----------------------------------------
二、数据库的字符编码完成后,便要将页面文件的编码设置好。

这里的要点有如下三点(红色为说明文字):
为了实现上述三点要求,本例采用的方案如下:
1.创建一个数据库连接文件conn.php ,其中在开头设置header 编码,并在创建数据连接后设置SQL 请求的编码,如下图所示:
2.设置页面文件的文件类型。

可以在页面文件中的<head>标签中设置字符编
码。

2.1如果之前的字符编码为gb2312,则该文件类型为ANSI (本例使用DW 和notepad++软件,读者也可用UE 编辑软件,只不过类型显示名称不一样而已),如下图所示:
2.2将<head>标签的编码设置成utf-8并保存文件后,再次打开,会发现文件类型变成了ANSI as UTF-8,如下图所示:
3.在页面的首行引入数据链接文件conn.php,可以保证conn.php中的header 设置字符编码成功有效,否则中文仍会出现乱码,如下图所示:
最后,就完成了字符编码的设置,看看成功后的页面吧(如下图),中文全部正常显示出来了,是不是很神奇,赶快动动手来实现吧!
Ps:另外提一句,如果你想让页面的字符编码设为其他类型(如GBK),则可以按上述方案将所有的编码类型设置为GBK即可。

相关文档
最新文档