巅云智能建站平台搭建版(创业流派版)火爆上线,毕生受权!新增:文章智能收罗+全站真静态打包+都会分站+智能小法式+不法词过滤+H5自顺应+智能链词等功效功效概况
建站资讯News

PHP乱码题目,UTF-8乱码罕见题目小结

0
一佰互联网站扶植(www.taishanly.com) 宣布时辰:2020-04-30 09:22:00 阅读数: 127
一.HTML页面转UTF-8编码题目
1.在head后,title前插手一行: <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
挨次不能错,必然要在 显现的标题有能够是乱码! 2.html文件编码题目: 点击编辑器的菜单:“文件”->“另存为”,能够看到以后文件的编码,确保文件编码为:UTF-8,
若是是ANSI,须要将编码改成:UTF-8。
3.HTML文件头BOM题目:
将文件从其余的编码转换成UTF-8编码时,偶然候会在文件的最起头加上一个BOM标签,
在个BOM标签能够会致使阅读器在显现中文的时辰呈现乱码。
删除这个BOM标签的体例:
1.能够用Dreamweaver翻开文件,偏从头保管,即能够去除BOM标签!
2.能够用EditPlus翻开文件,并在菜单“首选项”->“文件”->"UTF-8标识",设置为:“老是删除署名”,
而后保管文件,即能够去除BOM标签!
4.WEB办事器UTF-8编码题目:
若是你按以上所列的步骤做了,仍是有中文乱码题目,
请查抄你的所操纵的WEB办事器的编码题目
若是你操纵的是Apache,请将设置装备摆设文件里的:charset 设成:utf-8(这里仅列出体例,详细格局请参考apache的设置装备摆设文件)
若是你操纵的是Nginx,请将nginx.conf里的:charset 设成 utf-8,
详细找到 "charset gb2312;"或近似的语句,改成:“charset utf-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"); 5.截断显现文章标题时,呈现乱码或“?”问号的题目:
通俗文章标题很长的时辰,会显现一局部标题,会对文章标题停止截断,
由于一个UTF-8编码格局的中笔墨符会占用3个字符宽度,
截取标题的时辰,偶然会只截取到一其中笔墨符的1个字符或2字符宽度,
没截取完全,将呈现乱码或“?”问号的环境,
用上面的函数截取标题,就不会有题目:
复制代码 代码以下:
function get_brief_str($str, $max_length)
{
echo strlen($str) ."<br>";
if(strlen($str) > $max_length)
{
$check_num = 0;
for($i=0; $i < $max_length; $i++)
{
if (ord($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 `test` (
`id` INT NOT NULL ,
`name` VARCHAR( 10 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = MYISAM ;

2.用PHP读写数据库 在毗连数据库以后: [hide]$connection = mysql_connect($host_name, $host_user, $host_pass); 插手两行:
复制代码 代码以下:
mysql_query("set character set "utf8"");//读库
mysql_query("set names "utf8"");//写库

就能够一般的读写MYSQL数据库了。 四.JS相干的UTF-8编码题目
1.JS读Cookie的中文乱码题目 PHP写cookie的时辰须要将中笔墨符停止escape编码,
不然JS读到cookie中的中笔墨符将是乱码。
但php自身不escape函数,咱们新写一个escape函数:
复制代码 代码以下:
function escape($str)
{
preg_match_all("/[x80-xff].|[x01-x7f]+/",$str,$r);
$ar = $r[0];
foreach($ar as $k=>$v)
{
if(ord($v[0]) < 128)
$ar[$k] = rawurlencode($v);
else
$ar[$k] = "%u".bin2hex(iconv("UTF-8","UCS-2",$v));
}
return join("",$ar);
}

JS读cookie的时辰,用unescape解码, 而后就处置cookie中有中文乱码的题目了。 2.外部JS文件UTF-8编码题目 当一个HTML页面或则PHP页面包罗一个外部的JS文件时, 若是HTML页面或则PHP页面是UTF-8编码格局的文件, 外部的JS文件一样要转成UTF-8的文件, 不然将呈现,不包罗不胜利,挪用函数时不反映的环境。 点击编辑器的菜单:“文件”->“另存为”,能够看到以后文件的编码,确保文件编码为:UTF-8, 若是是ANSI,须要将编码改成:UTF-8。 五.FLASH相干的UTF-8编码题目

FLASH外部对一切字符串,默许都因此UTF-8处置
1.FLASH读文通俗本文件(txt,html)
要将文本文件的编码存为UTF-8
点击编辑器的菜单:“文件”->“另存为”,能够看到以后文件的编码,确保文件编码为:UTF-8,
若是是ANSI,须要将编码改成:UTF-8。
2.FLASH读XML文件
要将XML文件的编码存为UTF-8
点击编辑器的菜单:“文件”->“另存为”,能够看到以后文件的编码,确保文件编码为:UTF-8,
若是是ANSI,须要将编码改成:UTF-8。
在XML第1行写: 3.FLASH读PHP前往数据
若是PHP编码自身是UTF-8的,间接echo就能够了
若是PHP编码自身是GB2312的,能够将PHP转存成UTF-8编码格局的文件,间接echo就能够了
若是PHP编码自身是GB2312的,并且不许可改文件的编码格局,
用上面的语句将字符串转换成UTF-8的编码格局
$new_str = iconv("GB2312", "UTF-8", "$str");
再echo就能够了
4.FLASH读数据库(MYSQL)的数据
FLASH要经由过程PHP读取数据库中的数据
PHP自身的编码不主要,关头是若是数据库的编码是GB2312的话,
须要用上面的语句将字符串转换成UTF-8的编码格局
$new_str = iconv("GB2312", "UTF-8", "$str"); 5.FLASH经由过程PHP写数据
一句话,FLASH传过去的字符串是UTF-8格局的,
要转换成响应的编码格局,再操纵(写文件、写数据库、间接显现等等)
仍是用iconv函数转换
6.FLASH操纵本地编码(实际上不保举操纵)
若是想让FLASH不操纵UTF-8编码,而是操纵本地编码
对中国大海洋区而言,本地编码是GB2312或GBK
AS法式内,能够增加以下代码:
System.useCodepage = true;
那末FLASH内一切字符都是操纵GB2312的编码了
一切导入到FLASH或从FLASH导出的数据,都应当做响应的编码转换
由于操纵本地编码,会形成操纵繁体中文地域的用户发生乱码,以是不保举操纵
一佰互联是天下着名建站品牌办事商,咱们有九年、网站建造、网页设想、php开辟和域名注册及假造主机办事经历,供给的办事更是天下着名。最近几年来还整合团队上风自立开辟了可视化多用户”“3.0平台版,拖拽排版网站建造设想,轻松完成pc站、手机微网站、小法式、APP一体化全网营销网站扶植 ,已胜利的为天下上百家收集公司供给自助建站平台搭建办事。更多资讯:tags标签

上一篇:PHP 杂谈《重构-改良既有代码的设想》之一 从头构造你的函数
下一篇: PHP中return 和 exit 、break和contiue 区分与用法
[前往消息列表]

相干消息more

05
04月
网站扶植要注重不变性与宁静性

扶植一个好的网站,起首要保障网站的不变性,不然再好的网站也不涓滴代价。在我刚做网站扶植的时辰,由于贪自制,用的WEB办事器很小,价... >>概况

01
05月
大略计较在线时辰,bug:ip不异

<?PHP /* CREATETABLE`db_online`( `ip`char(20)defaultNULL, `time`cha... >>概况

24
08月
我公司正式升引新的企业LOGO

为了充实展现企业形像,打造京企在线网站扶植品牌,公司设想了全新的LOGO,新的LOGO将于2011年7月11日正式升引,新LOGO充实表现了... >>概况

17
04月
卖家网上被坑 “客服职员”长途节制电脑间接转

市民易密斯开了一家收集鞋店,未几前被一个收团体伙操纵长途节制电脑的手段,从卡中套走1.5万元。无独占偶,市民李密斯克日在网购时也受骗走了近3... >>概况

高端网站扶植

美工统筹SEO,为企业电子商务营销助力!

德律风:

023-85725751
建站

产物

域名注册 假造主机 云办事器 企业邮局
智能建站 APP打包 微站/小法式 创业平台
网站推行 媒体营销 智能收罗 AI机械人
400德律风 短信营销 店销机械人
私家定制 流派网站