如何在PHP和Mysql中对UTF8编码进行转换?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
<强> PHP页面转utf - 8编码问题强> <强>
强> 1。在代码开始出加入一行:标题(“内容类型:text/html; charset=utf-8");
2。PHP文件编码问题点击编辑器的菜单:“文件”→“另存为”,可以看到当前文件的编码,确保文件编码为:utf - 8,如果是ANSI,需要将编码改成:utf - 8。
3。PHP文件头BOM问题:PHP文件一定不可以有BOM标签,否则,会出现会话不能使用的情况,并有类似的提示:警告:session_start()函数。session-start]:不能发送会话缓存限制器——头已经发送这是因为,在执行session_start()的时候,整个页面不能有输出,但是当由于前PHP页面存在BOM标签,PHP把这个BOM标签当成是输出了,所以就出错了!所以PHP页面一定要删除BOM标签
<强>删除这个BOM标签的方法:强>
<强> 1。可以用Dreamweaver打开文件,并重新保存,即可以去除BOM标签!
2。可以用文字编辑器打开文件,强>并在菜单”首选项”→“文件”→“utf - 8标识“,设置为:“总是删除签名”,然后保存文件,即可以去除BOM标签!
<强> 3。PHP以附件形式保存文件的时候,utf - 8编码问题:强> PHP以附件形式保存文件,文件名必须是GB2312编码,否则,如果文件名中有中文的话,将是显示乱码:如果你的PHP本身是utf - 8编码格式的文件,需要将文件名变量由utf - 8转成GB2312: iconv (“UTF-8",“GB2312",“filename"美元;);
<强> 4。截断显示文章标题时,出现乱码或者“?”问号的问题:
强>一般文章标题很长的时候,会显示一部分标题,会对文章标题进行截断,由于一个utf - 8编码格式的中文字符会占用3个字符宽度,截取标题的时候,有时会只截取到一个中文字符的1个字符或2字符宽度,没截取完整,将出现乱码或“?”问号的情况,用下面的函数截取标题,就不会有问题:
function get_brief_str (str美元,,max_length美元),{, echo 才能strlen (str)美元,只““, if 才能;(strlen (str)美元,祝辞,max_length美元),{, ,,,check_num 美元;=,0;, ,,,for ($小姐:=,0;,美元小姐:& lt;, max_length;美元,美元我+ +),{, ,,,,,if (奥德(str美元[$ i]),祝辞,128), ,,,,,,,美元check_num + +,, ,,,}, , ,,,if (check_num 美元;%,3,==,0), ,,,,,str 美元;=,substr (str美元,,0,,max_length美元),只“…“, ,,,else ,,,,,if (check_num 美元;%,3,==,1), ,,,,,,,str 美元;=,substr (str美元,,0,,max_length 美元;+ 2),只“…“, ,,,,,else ,,,,,,,if (check_num 美元;%,3,==,2), ,,,,,,,,,str 美元;=,substr (str美元,,0,,max_length 美元;+ 1),只“…“, ,,}, , return 才能;str;美元, }
<>强MYSQL数据库使用utf - 8编码的问题
强> 1。用phpmyadmin创建数据库和数据表创建数据库的时候,请将“整理”设置为:“utf8_general_ci”或执行语句:
CREATE DATABASE “dbname”, DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
创建数据表的时候:如果是该字段是存放中文的话,则需要将“整理”设置为:“utf8_general_ci”,如果该字段是存放英文或数字的话,默认就可以了。
相应的sql语句,例如:
CREATE TABLE “测试”,(, “id”, INT NOT  NULL ,, “名字”,VARCHAR (, 10), CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,, PRIMARY KEY (,“id”),=),ENGINE MYISAM ;
2。用PHP读写数据库
在连接数据库之后:
connection 美元;=,mysql_connect (host_name美元,host_user美元,美元host_pass);
加入两行:
mysql_query (“set  character set & # 39; use utf8 # 39;“);//读库, mysql_query (“set  names & # 39; use UTF8 # 39;“);//写库
关于如何在PHP和Mysql中对UTF8编码进行转换问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。