zoukankan      html  css  js  c++  java
  • 将字符串 由一个字符集 转成 另一个字符集 及 随机生成中文

    今天遇到了一个麻烦 字符集的转换

                   因为这个网页是utf-8的  但是他获取了一个gbk的数据库 所以为了统一字符集必须要将获取的gbk数据转成utf-8   

           刚开始我的思路是acsii值得转换  先以gbk的字符集获取数据 然后 用mb_substr($str,$start,$len,'gbk') 来截取一个中文

           然后在用ord()获取他的ascii值 之后用chr() 把ascii值转成中文   原理字符的ascii是不变的  无论它是gbk 还是 utf-8

           但是我发现输出的是一个乱码【无论是gbk 还是uft-8】这样更惨   

               $str='结婚多久啊哈卡斯卡';
               $str_len =  strlen($str);
               for($i=0; $i<$str_len; $i++){
                   $chars = mb_substr($str, $i, 2,'gbk');
                   $num = ord($chars);
                   echo chr($num);
               }

                然后我查了一些资料发现: 中文是由两个字节的ascii码组成的       chr($num).chr($num)           这才能组合成一个中文

          如:随机生成中文:  echo chr(rand(0xB0,0xCC)).chr(rand(0xA1,0xBB));       

          但是我用ord() 获取中文的ascii 再用两个chr()连接去了发现获取的的中文已经不是原来的了  所以这种方法失败

    经过N次的搜索终于发现 万能的php已经帮我们搞定了  我也是受不了啦

              // iconv — 字符串按要求的字符编码来转换 
    
               $str = iconv('gbk','utf-8',$str); 
    
             //把$str 由 gbk 转换成  utf-8 

    //可以再手册里好好看看 iconv系列 的函数

    2015-04-20   21:34:52

  • 相关阅读:
    数组——基础
    程序流程控制——循环结构
    程序流程控制——分支结构
    运算符
    进制
    变 量
    Java中的名称命名规范
    标识符(Identifier)
    保留字(reserved word)
    关键字
  • 原文地址:https://www.cnblogs.com/jxkshu/p/4442749.html
Copyright © 2011-2022 走看看