函数strtrlz是否知道mediawiki的中文繁简转换功能?
用的就是这个函数,比较适合你这种情况,不妨看看它的代码。如果是标准字符转换,前面的帖子已经作了说明
http://topic.csdn.net/u/20081118/18/c1bac1bd-c4b9-4a94-8244-228ee601b984.html?seed=1531169566

解决方案 »

  1.   

    如我想获取“车”的“8F66”;反之用“8F66”取加“车”。这是一个字互换,那么一段混合字串(关键点)呢?想请教一下你是如何将8F66变成车的?
    第二个,如果是混合的,秘须先用正则提取二字节16制码,一个一个生成字符混取好象是不可能的!
      

  2.   

    写个算法 你这个是固定的没有组合关系
    生成一个php里面的数组,如$array = new Array("8F66"=>'车',...);
    最好是生成多个数组,像字典那样可以检索
      

  3.   

    在网上查到这个取汉字的unicode码 函数,但只能取单个汉字,且没给出反取办法。function getUnicodeFromOneUTF8($word) {
      //获取其字符的内部数组表示,所以本文件应用utf-8编码!
      if (is_array( $word))
        $arr = $word;
      else  
        $arr = preg_split('//', $word, -1, PREG_SPLIT_NO_EMPTY);
      //此时,$arr应类似array(228, 189, 160)
      //定义一个空字符串存储
      $bin_str = '';
      //转成数字再转成二进制字符串,最后联合起来。
      foreach ($arr as $value)
        $bin_str .= decbin(ord($value));
      //此时,$bin_str应类似111001001011110110100000,如果是汉字"你"
      //正则截取
      $bin_str = preg_replace('/^.{4}(.{4}).{2}(.{6}).{2}(.{6})$/','$1$2$3', $bin_str);
      //此时, $bin_str应类似0100111101100000,如果是汉字"你"
      //return bindec($bin_str); //返回类似20320,汉字"你"
      return dechex(bindec($bin_str)); //如想返回十六进制4f60,用这句
    }
    echo '<br />';$v='你';
    echo getUnicodeFromOneUTF8($v); //得到unicode码4f60
      

  4.   


    你这是一个典型的Unicode<=>Ascii互换问题。
    按照下面的代码,用strtr就可以简单的做到。
    但是,需要做两个互换字符的数组。
    已经存在县有数据的情况下,写个小程序,自动生成互换数组的代码不成问题。$data= array(
    '\u30c6'=>'全',
    '\u30c7'=>'字');
    var_dump(strtr('\u30c6中文\u30c7', $data));
    注意:
    1.不要轻易用正则
    2.PHP对单个字符操作的API很少,尽可能用整体转换的函数
      

  5.   

    测试了一下楼上froole兄的,可以输出,应能满足楼主应用
    但直接输出'\u30c6',不行我记不清了\u30c6哪种编码了,unicode码还是utf-8,还是html的内码?
      

  6.   

    4楼的在文件是utf-8的情况下通过,但如果不是utf-8的不行另外,如果知道一个字符的unidcode码,如何输字符:如4f60 输出‘你’
      

  7.   

    4楼的,如果文件是ISO-8859-1
    ,下面的这个就不行,不知为什么?$v=iconv("ISO-8859-1", "UTF-8", "你");echo getUnicodeFromOneUTF8($v); //得到unicode码4f60 
      

  8.   


    不是不能输出,而是你显示不了。
    lz要的功能感觉像java中native2ascii实现的功能,
    而不是普通的在HTML中所显示的编码转换问题。