站长资源网络编程

Web 开发中遇到的UTF-8编码的问题总结第1/2页

整理:jimmy2024/10/5浏览2
简介主要有五个方面:一..HTML页面转UTF-8编码问题二.PHP页面转UTF-8编码问题三.MYSQL数据库使用UTF-8编码的问题四.JS相关的UTF-8编码问题五.FLASH相关的UTF-8编码问题一.HTML页面转UTF-8编码问题1.在后,前加入一行:</div> <div class="news_infos"><div id="MyContent"><P>主要有五个方面:</P> <P>一..HTML页面转UTF-8编码问题</P> <P>二.PHP页面转UTF-8编码问题</P> <P>三.MYSQL数据库使用UTF-8编码的问题</P> <P>四.JS相关的UTF-8编码问题</P> <P>五.FLASH相关的UTF-8编码问题</P> <P><STRONG>一.HTML页面转UTF-8编码问题</STRONG></P> <P>1.在<head>后,<title>前加入一行:</P> <P><meta http-equiv='Content-Type' content='text/html; charset=utf-8' /></P> <P>顺序不能错,一定要在<title>标签前加入,否则如果<title>与</title>之间有中文字符的话,显示的标题有可能是乱码!</P> <P>2.html文件编码问题:</P> <P>点击编辑器的菜单:“文件”->“另存为”,可以看到当前文件的编码,确保文件编码为:UTF-8,如果是ANSI,需要将编码改成:UTF-8。</P> <P>3.HTML文件头BOM问题:</P> <P>将文件从其他的编码转换成UTF-8编码时,有时候会在文件的最开始加上一个BOM标签,在个BOM标签可能会导致浏览器在显示中文的时候出现乱码。</P> <P>删除这个BOM标签的方法:</P> <P>1.可以用Dreamweaver打开文件,并重新保存,即可以去除BOM标签!</P> <P>2.可以用EditPlus打开文件,并在菜单“首选项”->“文件”->"UTF-8标识",设置为:“总是删除签名”,然后保存文件,即可以去除BOM标签!</P> <P>4.WEB服务器UTF-8编码问题:</P> <P>如果你按以上所列的步骤做了,还是有中文乱码问题,请检查你的所使用的WEB服务器的编码问题</P> <P>如果你使用的是Apache,请将配置文件里的:charset 设成:utf-8(这里仅列出方法,具体格式请参考apache的配置文件)。</P> <P>如果你使用的是Nginx,请将nginx.conf里的:charset   设成 utf-8,具体找到 "charset   gb2312;"或者类似的语句,改成:“charset   utf-8;”。</P> <P> <P><B></B></P> <P></P> <P><STRONG>二.PHP页面转UTF-8编码问题</STRONG></P> <P>1.在代码开始出加入一行:</P> <P>header("Content-Type: text/html;charset=utf-8");</P> <P>2.PHP文件编码问题</P> <P>点击编辑器的菜单:“文件”->“另存为”,可以看到当前文件的编码,确保文件编码为:UTF-8,如果是ANSI,需要将编码改成:UTF-8。</P> <P>3.PHP文件头BOM问题:</P> <P>PHP文件一定不可以有BOM标签,否则,会出现session不能使用的情况,并有类似的提示:</P> <P>Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent</P> <P>这是因为,在执行session_start() 的时候,整个页面不能有输出,但是当由于前PHP页面存在BOM标签,PHP把这个BOM标签当成是输出了,所以就出错了!</P> <P>所以PHP页面一定要删除BOM标签</P> <P>删除这个BOM标签的方法:</P> <P>1.可以用Dreamweaver打开文件,并重新保存,即可以去除BOM标签!</P> <P>2.可以用EditPlus打开文件,并在菜单“首选项”->“文件”->"UTF-8标识",设置为:“总是删除签名”,然后保存文件,即可以去除BOM标签!</P> <P>4.PHP以附件形式保存文件的时候,UTF-8编码问题:</P> <P>PHP以附件形式保存文件,文件名必须是GB2312编码,否则,如果文件名中有中文的话,将是显示乱码:</P> <P>如果你的PHP本身是UTF-8编码格式的文件,需要将文件名变量由UTF-8转成GB2312:</P> <P>iconv("UTF-8", "GB2312", "$filename");</P> <P>5.截断显示文章标题时,出现乱码或者“?”问号的问题:</P> <P>一般文章标题很长的时候,会显示一部分标题,会对文章标题进行截断,由于一个UTF-8编码格式的中文字符会占用3个字符宽度,截取标题的时候,有时会只截取到一个中文字符的1个字符或2字符宽度,没截取完整,将出现乱码或“?”问号的情况,用下面的函数截取标题,就不会有问题:</P> <P> function get_brief_str($str, $max_length) <BR>{ <BR>echo strlen($str) ."<br>"; <BR>if(strlen($str) > $max_length) <BR>{ <BR>$check_num = 0; <BR>for($i=0; $i < $max_length; $i++) <BR>{ <BR>if (ord($str[$i]) > 128) <BR>$check_num++; <BR>} <br><br>if($check_num % 3 == 0) <BR>$str = substr($str, 0, $max_length)."..."; <BR>else if($check_num % 3 == 1) <BR>$str = substr($str, 0, $max_length + 2)."..."; <BR>else if($check_num % 3 == 2) <BR>$str = substr($str, 0, $max_length + 1)."..."; <BR>} <br><br>return $str; <BR>} <BR> <strong>1</strong>2下一页阅读全文</div> </div> </div> <div class="share"> </div> <div class="nextinfo"> <p>上一篇:<a href="http://m.paidiu.com/show/1/165662.html" title="PHP VBS JS 函数 对照表">PHP VBS JS 函数 对照表</a></p> <p>下一篇:<a href="http://m.paidiu.com/show/1/165664.html" title="真伪静态区别方法分析">真伪静态区别方法分析</a></p> </div> <div class="otherlink"> <h2>最新资源</h2> <ul> <li><a href="/show/1/615856.html" title="何洛洛.2024-别叫醒我(EP)【光羽】【FLAC">何洛洛.2024-别叫醒我(EP)【光羽】【FLAC</a></li> <li><a href="/show/1/615855.html" title="林忆莲.1996-爱莲说2CD【华纳】【WAV+CUE">林忆莲.1996-爱莲说2CD【华纳】【WAV+CUE</a></li> <li><a href="/show/1/615854.html" title="黄妃.2005-红【亚律】【WAV+CUE】">黄妃.2005-红【亚律】【WAV+CUE】</a></li> <li><a href="/show/1/615853.html" title="刘美麟《同生》[FLAC/分轨][161.95MB]">刘美麟《同生》[FLAC/分轨][161.95MB]</a></li> <li><a href="/show/1/615852.html" title="群星《前途海量 电影原声专辑》[320K/MP3">群星《前途海量 电影原声专辑》[320K/MP3</a></li> <li><a href="/show/1/615851.html" title="群星《前途海量 电影原声专辑》[FLAC/分轨">群星《前途海量 电影原声专辑》[FLAC/分轨</a></li> <li><a href="/show/1/615850.html" title="张信哲.1992-知道新曲与精丫巨石】【WAV+">张信哲.1992-知道新曲与精丫巨石】【WAV+</a></li> <li><a href="/show/1/615849.html" title="王翠玲.1995-ANGEL【新艺宝】【WAV+CUE】">王翠玲.1995-ANGEL【新艺宝】【WAV+CUE】</a></li> <li><a href="/show/1/615848.html" title="景冈山.1996-我的眼里只有你【大地唱片】">景冈山.1996-我的眼里只有你【大地唱片】</a></li> <li><a href="/show/1/615847.html" title="群星《八戒 电影原声带》[320K/MP3][188.">群星《八戒 电影原声带》[320K/MP3][188.</a></li> </ul> </div> </div> <div class="sidebar"> <div class="cloud"><h2 class="hometitle">一句话新闻</h2><a href="/show/1/603302.html"><ul>微软与英特尔等合作伙伴联合定义“AI PC”:键盘需配有Copilot物理按键<br><br>几个月来,英特尔、微软、AMD和其它厂商都在共同推动“AI PC”的想法,朝着更多的AI功能迈进。在近日,英特尔在台北举行的开发者活动中,也宣布了关于AI PC加速计划、新的PC开发者计划和独立硬件供应商计划。<br>在此次发布会上,英特尔还发布了全新的全新的酷睿Ultra Meteor Lake NUC开发套件,以及联合微软等合作伙伴联合定义“AI PC”的定义标准。</ul></a></div> </div> </article> <footer> <p style="font-size: 14px;">友情链接:<a href="http://www.imxmx.com/" title="杰晶网络" target="_blank">杰晶网络</a> <a href="http://www.ddrfans.com/" title="DDR爱好者之家" target="_blank">DDR爱好者之家</a> <a href="http://www.nqxw.com/" title="南强小屋" target="_blank">南强小屋</a> <a href="/" title="黑松山资源网" target="_blank">黑松山资源网</a> <a href="http://www.dyhadc.com/" title="白云城资源网" target="_blank">白云城资源网</a> <a href="/sitemap.xml">SiteMap</a></p> <p>Design by <a href="http://m.paidiu.com">黑松山资源网</a> <a href="/">http://m.paidiu.com</a></p> </footer> <script src="/images/nav.js"></script> <script type="text/javascript"> jQuery.noConflict(); jQuery(function() { var elm = jQuery('#left_flow2'); var startPos = jQuery(elm).offset().top; jQuery.event.add(window, "scroll", function() { var p = jQuery(window).scrollTop(); jQuery(elm).css('position', ((p) > startPos) ? 'fixed' : ''); jQuery(elm).css('top', ((p) > startPos) ? '0' : ''); }); }); </script> </body> </html>