新莆京娱乐app:8还乱码的问题,PHP乱码问题

一.HTML页面转UTF-8编码难题 
1.在head后,title前加入一行:

 

一.HTML页面转UTF-8编码难题 1.在head后,title前参加一行:

前日往服务器上加了点html页面,没悟出哇没想到,丫竟然普通话乱码,本能第一感应正是看下html源码的编码格式,明确了是utf-8后,顺手看了下浏览器编码竟然是gbk,手动更换为utf-8后,页面包车型大巴汉语终于显示平常,然而每一次访问那一个页面不只怕总是手动调编码格式吧。于是乎,带着主题素材本人过来了百度搜索主页,在经过敲下回车的前边的一多元相关反应后,百度提交了一群答案雷同却并没什么卵用的结果。
在看了各样答案未果的动静下,笔者一挥而就的选料了有尿无法憋着,去洗手间解了个手。果不其然,没了尿意之后
主意识起始回来大脑专门的学问,在深入分析了一雨后冬笋恐怕的成分后,决定查一查web.xml中的mime-mapping标签。
最后的结果是,查的好对啊,哈哈哈哈哈,
新莆京娱乐app:8还乱码的问题,PHP乱码问题。<pre><code>

<meta http-equiv=’Content-Type’ content=’text/html; charset=utf-8′
/>

一.PHP页面转UTF-8编码难题 

1.在代码起先出参加一行: 
header(“Content-Type: text/html;charset=utf-8”);

2.PHP文件编码难点

点击编辑器的美食指南:“文件”->“另存为”,能够观察日前文件的编码,确定保证文件编码为:UTF-8, 
假尽管ANSI,须要将编码改成:UTF-8。 

3.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中有汉语乱码的题目了。

 

<meta http-equiv=’Content-Type’ content=’text/html; charset=utf-8′
/>
逐个不能够错,一定要在

<mime-mapping>
<extension>htm</extension>
<mime-type>text/html;charset=utf-8</mime-type>
</mime-mapping>
<mime-mapping>
<extension>html</extension>
<mime-type>text/html;charset=utf-8</mime-type>
</mime-mapping>
</code></pre>

依次不能够错,一定要在

新莆京娱乐app,二.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读写数据库

在接连数据库之后,参加两行:

mysql_query("set character set 'utf8'");//读库

mysql_query("set names 'utf8'");//写库

 

就能够符合规律的读写MYSQL数据库了。

 

节选自:

 

来得的标题有望是乱码!

上面啰嗦的太多了,简单来说正是,若是html页面中早就写了<meta
charset=”utf-8″
/>,然则配置到tomcat后用浏览器展开乱码,手动调节浏览器编码为utf-8能够苏醒平常,那时候能够思虑是这种场所。

来得的标题有希望是乱码!

 

2.html文件编码难题:

2.html文本编码难题:

点击编辑器的菜系:“文件”->“另存为”,能够观望近期文件的编码,确认保障文件编码为:UTF-8,
设假若ANSI,须求将编码改成:UTF-8。
3.HTML文件头BOM问题:
将文件从任何的编码调换来UTF-8编码时,一时候会在文书的最起头加多八个BOM标签,
在个BOM标签可能会变成浏览器在体现粤语的时候出现乱码。
删除那个BOM标签的措施:
1.得以用Dreamweaver张开文件,并再度保存,就可以以去除BOM标签!
2.得以用艾德itPlus展开文件,并在菜单“首荐项”->“文件”->”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”);

点击编辑器的美食做法:“文件”->“另存为”,能够看出目前文件的编码,确定保证文件编码为:UTF-8, 
借使是ANSI,要求将编码改成:UTF-8。 
3.HTML文件头BOM问题: 
将文件从别的的编码调换来UTF-8编码时,一时候会在文书的最开端增加贰个BOM标签, 
在个BOM标签也许会招致浏览器在呈现普通话的时候出现乱码。 
除去那些BOM标签的形式: 
1.方可用Dreamweaver展开文件,一碗水端平复保存,即能够去除BOM标签! 
2.方可用艾德itPlus展开文件,并在菜单“首荐项”->“文件”->”UTF-8标志”,设置为:“总是删除具名”, 
下一场保留文件,即能够去除BOM标签! 
4.WEB服务器UTF-8编码难题: 
倘诺您按上述所列的步子做了,依然有汉语乱码难题, 
请检查你的所选用的WEB服务器的编码难点 
倘使你使用的是Apache,请将布署文件里的:charset
设成:utf-8(这里仅列出方法,具体格式请参见apache的陈设文件) 
如果您选拔的是Nginx,请将nginx.conf里的:charset 设成 utf-8, 
具体找到 “charset gb2312;”恐怕类似的讲话,改成:“charset utf-8;”。

2.PHP文件编码难点

二.PHP页面转UTF-8编码难题 
1.在代码伊始出参预一行: 
header(“Content-Type: text/html;charset=utf-8”);

点击编辑器的菜谱:“文件”->“另存为”,能够见见眼下文件的编码,确定保证文件编码为: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.得以用艾德itPlus展开文件,并在菜单“首荐项”->“文件”->”UTF-8标志”,设置为:“总是删除签字”,
接下来保留文件,就可以以去除BOM标签!
4.PHP以附属类小部件情势保留文件的时候,UTF-8编码难题:
PHP以附属类小部件方式保留文件,文件名必须是GB2312编码,
要不,倘诺文件名中有汉语的话,将是呈现乱码:
一旦你的PHP本身是UTF-8编码格式的公文,
须求将文件名变量由UTF-8转成GB2312:
iconv(“UTF-8”, “GB2312”, “$filename”);

2.PHP文件编码难题

5.截断展现小说题目时,出现乱码大概“?”问号的标题:
一般小说题目很短的时候,会来得一部分题名,会对小说标题进行截断,
出于二个UTF-8编码格式的国语字符会占用3个字符宽度,
截取题指标时候,一时会只截取到贰个国语字符的1个字符或2字符宽度,
没截取完整,将现出乱码或“?”问号的情景,
用上面包车型大巴函数截取标题,就不会不平常:

点击编辑器的菜谱:“文件”->“另存为”,能够见到眼下文件的编码,确定保证文件编码为: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.能够用艾德itPlus打开文件,并在菜单“首荐项”->“文件”->”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++;
}

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;
}

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”
或进行语句:

相关文章