• PHP字符编码问题-总结


    今天在网上看到一个人的对于php开发中字符编码的总结,感觉不错,摘录如下:

    一,php编码转换
            1.通过iconv()函数实现编码转换
                    语法:iconv(string in_charset,string out_charset,string str)
     将指定字符串str由in_charset编码格式转换成out_charset编码格式,返回bool值。
            2.通过mb_convert_encoding()函数实现编码转换
                    语法:mb_convert_encoding(string str,string to_encoding[,mixed from_encoding])
                    将字符串str的编码由from_encoding转换为to_encoding。
    二,检测php字符串的编码
            通过mb_detect_encoding()函数来检测字符串使用的是何种字符编码。
    三,字符编码优先级
            由高--->低
            1.http消息报头的Content-Type字段中的charset参数。
            2.通过meta元素声明,将http-equiv设置成Content-Type。
            3.一些元素的charset属性设置。
    四,解决页面中的php乱码问题
            数据库中数据的输入和输出产生的乱码,可以通过PHP的mysql_query()函数设置来解决,而页面中如果出现乱码,则可以使用下面的两种方法解决。
            (1)使用meta标签设置页面编码
            
            meta标签的作用是声明客户端的浏览器用什么字符编码显示该页面。
            (2)通过header()函数设置页面的编码格式
            header("content-type;text/html;charset=gb2312");

            header()函数的作用是把括号内的信息发到HTTP标头。

    五、如果浏览器不能选择你在页面中默认的字符编码来显示页面

    可以设置php中的php.ini文件中的default_charset = "编码", 例如:default_charset = "gb2312"

    这里决定了浏览器选择的默认编码。

     1     /**  
     2      * 对数据进行编码转换  
     3      * @param array/string $data       数组  
     4      * @param string $output    转换后的编码  
     5      */  
     6     function array_iconv($data,  $output = 'utf-8') {  
     7         $encode_arr = array('UTF-8','ASCII','GBK','GB2312','BIG5','JIS','eucjp-win','sjis-win','EUC-JP');  
     8         $encoded = mb_detect_encoding($data, $encode_arr);  
     9       
    10         if (!is_array($data)) {  
    11             return mb_convert_encoding($data, $output, $encoded);  
    12         }  
    13         else {  
    14             foreach ($data as $key=>$val) {  
    15                 $key = array_iconv($key, $output);  
    16                 if(is_array($val)) {  
    17                     $data[$key] = array_iconv($val, $output);  
    18                 } else {  
    19                 $data[$key] = mb_convert_encoding($data, $output, $encoded);  
    20                 }  
    21             }  
    22         return $data;  
    23         }  
    24     }  
  • 相关阅读:
    jmeter 安装
    Day05_系统监控、rpm、yum软件包管理及源码安装python解释器
    Day04_vim编辑器及硬盘操作
    Day03_用户群组权限及正文处理命令
    Day02_操作系统、网络及Linux基础
    Day01_计算机硬件及启动流程
    让Sublime Text成为静态WEB服务器:SublimeServer
    sublime text2-text3 定义的不同浏览器的预览快捷键
    css之px自动转rem—“懒人”必备
    修改Sublime Text3 的侧边栏字体大小
  • 原文地址:https://www.cnblogs.com/cloak/p/5079637.html
Copyright © 2020-2023  润新知