【编码问题:明明是utf-8,为何显示响应为gbk呢?】教程文章相关的互联网学习教程文章

PHP utf-8编码问题,utf8编码,数据库乱码,页面显示输出乱码

老声长谈,着是困惑很多人的问题,如果处理不好,都是乱码,说这些话并不是我对编码很精通,只是在这方面是得留神,自己总结了一点小经验(容易出现乱码的地方有php文件里面 ,数据库里面 存储 的编码 ,页面显示 ,数据传输 ): 1.在建数据库的时候,尤其是用phpMyAdmin与MYSQL打交道时候,一般都是utf-8,字段为 utf8_general_ci 数据库的设置: 在my.ini文件中查找:[mysql]default-character-set = utf8[mysqld]default-character-...

解析使用substr截取UTF-8中文字符串出现乱码的问题

我们知道有时候使用substr来截取UTF-8中文字符串的时候,经常会出现乱码,为什么会出现这样的问题呢,本文告诉你答案。看这样一段代码吧(字符编码为UTF-8): 代码如下:<?$str = '都知道strlen与mb_strlen是求字符串长度的函数';echo strlen($str)'.<br />'.mb_strlen($str,'utf-8');?>运行上述代码,返回值如下:6634怎么样?strlen中,中文是三个字节的长度,英文则是一个字节的长度!mb_strlen中,都被计算为一字节的长度!所...

php解析xml提示Invalid byte 1 of 1-byte UTF-8 sequence错误的处理方法

错误提示Invalid byte 1 of 1-byte UTF-8 sequence原因分析在中文版的window下java的默认的编码为GBK,也就是所虽然我们标识了要将xml保存为utf-8格式但实际上文件是以GBK格式来保存的,所以这也就是为什么能够我们使用GBK、GB2312编码来生成xml文件能正确的被解析,而以UTF-8格式生成的文件不能被xml解析器所解析的原因。 把xml的encoding属性值UTF-8改为UTF8org.xml.sax.SAXParseException: Content is not allowed in trailing ...

PHP 正则判断中文UTF-8或GBK的思路及具体实现

UTF-8匹配: 在javascript中,要判断字符串是中文是很简单的。比如: 代码如下:var str = "php编程"; if (/^[\u4e00-\u9fa5]+$/.test(str)) { alert("该字符串全部是中文"); }else{ alert("该字符串不全部是中文"); } //php中,是用\x表示十六进制数据的。于是,变换成如下的代码: $str = "php编程"; if (preg_match("/^[\x4e00-\x9fa5]+$/",$str)) { print("该字符串全部是中文"); } else { print("该字符串不全部是中文"); } 貌...

php中文乱码怎么办如何让浏览器自动识别utf-8

刚开始学习php的朋友可能经常遇到问题,就是调试的时候经常显示乱码 每次打开浏览器都要改下编码,很麻烦, 有没有方法让浏览器自动识别utf-8呢? 解决的方法很简单 就是在php里加一句header 例: header("Content-type: text/html; charset=utf-8"); echo '我是初学者'; 不错需要注意的一点是 header("Content-type: text/html; charset=utf-8"); 这一句前不能向页面输出任何内容,意思是不能使用echo等语句,也不能输出html标签或...

php自动识别文件编码并转换为UTF-8的方法

PHP转换文件编码是一个比较简单的事情,但是在开发中传递中文参数的时候,有时候不知道是什么编码,结果造成了乱码的现象。这里有个非常方便的解决办法,可以自动识别编码并转换为UTF-8。具体代码如下:代码如下:function characet($data){ if( !empty($data) ){ $fileType = mb_detect_encoding($data , array(UTF-8,GBK,LATIN1,BIG5)) ; if( $fileType != UTF-8){ $data = mb_convert_encoding($data ,utf...

支持生僻字且自动识别utf-8编码的php汉字转拼音类

拼音类文件py_class.php源码如下:<?php class py_class{ function py_class(){ $this -> pinyin = array( "a" => array(59371, 41648, 50400, 33157, 41392, 18661, 47599), "ai" => array(19697, 32178, 35504, 36856, 20712, 25068, 28663, 26608, 29399, 19381, 17099, 47497, 30339, 43240, 54250, 56459, 45201, 25005, 57749, 17131, 36057, 28596, 49375, 29162, 55685, 31713, 27114, 64665, 19190, 56536, 37508, 22145...

php中隐形字符65279(utf-8的BOM头)问题

今天在CSDN看到一个php输出空白隐形字符65279的问题,在网上找了下,发下这个65279字符是php用来标记文件是utf-8编码的,输出的时候会一起输出到客户端,导致客户端如果使用ajax得到返回值时,无法匹配字符串。 php隐形字符65279解释如下: UTF-8 编码的文件可以分为无 BOM 和 BOM 两种格式。 何谓BOM?"EF BB BF" 这三个字节就叫BOM,全称是"Byte Order Mard"。在utf8文件中常用BOM来表明这个文件是UTF-8文件,而BOM的本意是在utf...

php中json_encode UTF-8中文乱码的更好解决方法

最近在接口代码当中用到过json_encode,在网上找到说json_encode编码设置为UTF-8中文就不会乱码,经验证这办法确实是有效果的,但是不知道为什么,代码在用过一段时间之后就不太管用了。以下是自己的解决json_encode的办法。有更好的方法请分享出来吧! 第一种: 这种简单的做一个代码转换,urlcode之后再返回所需数组 我代码这样就足够了。 代码如下 public static function encodeOperations ($array){foreach ((array)$array as...

PHP实现UTF-8文件BOM自动检测与移除实例

本文实例讲述了PHP实现UTF-8文件BOM自动检测与移除的方法。分享给大家供大家参考。具体实现方法如下: BOM信息是文件开头的一串隐藏的字符,用于让某些编辑器识别这是个UTF-8编码的文件。但PHP在读取文件时会把这些字符读出,从而形成了文件 开头含有一些无法识别的字符的问题。 比如用UTF-8格式保存的生成图片的PHP文件,因为文件头隐藏的BOM信息也被下发,导致生成的 图片数据不对,浏览器无法识别。 要检测一个UTF-8文件是否含有...

PHP如何实现Unicode和Utf-8编码相互转换

最近恰好要用到unicode编码的转换,就去查了一下php的库函数,居然没找到一个函数可以对字符串进行Unicode的编码和解码!也罢,找不到的话就自己实现一下了。。。 Unicode和Utf-8编码的区别 Unicode是一个字符集,而UTF-8是Unicode的其中一种,Unicode是定长的都为双字节,而UTF-8是可变的,对于汉字来说Unicode占有的字节比UTF-8占用的字节少1个字节。Unicode为双字节,而UTF-8中汉字占三个字节。 UTF-8编码字符理论上可以最多到6...

PHP页面转UTF-8中文编码乱码的解决办法

对于乱码这个问题php开发者几乎都会有碰到过,我们下面主要是介绍了php文件乱码和页面乱码。 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...

php的mail函数发送UTF-8编码中文邮件时标题乱码的解决办法【图】

最近遇到一个问题,就是在使用php的mail函数发送utf-8编码的中文邮件时标题出现乱码现象,而邮件正文却是正确的。最初以为是页面编码的问题,发现页面编码utf-8没有问题啊,找了半天原因,最后找到了问题所在。 1.使用 PEAR 的 Mail 类 PEAR 的 Mail 类可以让你选择使用 sendmail 或者 SMTP 方式发信,这样的包装好的接口很好用,你没有必要去自己重新发明轮子。2.关于headers 中subject 的乱码 不要把任何除了 iso-8859-1 编码之...

PHP 与 UTF-8 的最佳实践详细介绍

《PHP中的字符串、编码、UTF-8》一文中描述了一些列的基础知识,比较枯燥,现在来说点有用的——PHP 字符串处理的最佳实践,本文是“PHP、字符串、编码、UTF-8”相关知识的第二部分。先说结论—— 在 PHP 中的各个方面使用 UTF-8 编码。 PHP 语言层面是不支持 Unicode字符集的,但是可以通过 UTF-8 编码能处理大部分问题。 最佳实践就是明确知道输入编码(不知道就检测),内部统一转换为 UTF-8 编码,输出编码也统一是 UTF-8编码。...

用PHP将Unicode 转化为UTF-8的实现方法(推荐)

实例如下: function unescape($str) {$str = rawurldecode($str);preg_match_all("/(?:%u.{4})|&#x.{4};|&#\d+;|.+/U",$str,$r);$ar = $r[0];//print_r($ar);foreach($ar as $k=>$v) {if(substr($v,0,2) == "%u"){$ar[$k] = iconv("UCS-2BE","UTF-8",pack("H4",substr($v,-4)));}elseif(substr($v,0,3) == "&#x"){$ar[$k] = iconv("UCS-2BE","UTF-8",pack("H4",substr($v,3,-1)));}elseif(substr($v,0,2) == "&#") {$ar[$k] = ico...