腦友記廣場 -> 新手上路 -> php: utf8 轉 big5 登錄 -> 註冊 -> 回復主題 -> 發表主題

maninnet 2006-09-04 21:32
有人問, 本版制作網頁, 如果是 utf8 的, 想改為 big5 有沒有簡單方法?
在網頁的頂部加上:

<?
function utf8_2_big5($utf8_str) {
          $i=0;
          $len = strlen($utf8_str);
          $big5_str="";
          for ($i=0;$i<$len;$i++) {
                $sbit = ord(substr($utf8_str,$i,1));
                if ($sbit < 128) {
                    $big5_str.=substr($utf8_str,$i,1);
                } else if($sbit > 191 && $sbit < 224) {
                    $new_word=iconv("UTF-8","Big5",substr($utf8_str,$i,2));
                    $big5_str.=($new_word=="")?"■":$new_word;
                    $i++;
                } else if($sbit > 223 && $sbit < 240) {
                    $new_word=iconv("UTF-8","Big5",substr($utf8_str,$i,3));
                    $big5_str.=($new_word=="")?"■":$new_word;
                    $i+=2;
                } else if($sbit > 239 && $sbit < 248) {
                    $new_word=iconv("UTF-8","Big5",substr($utf8_str,$i,4));
                    $big5_str.=($new_word=="")?"■":$new_word;
                    $i+=3;
                }
          }
          return $big5_str;
  }
?>

echo($contents);
改為
echo(utf8_2_big5($contents));

yuenlong 2006-09-04 22:09
本身 php 底子不好,睇過段 code 點用哩 ?

http://www...............utf8_2_big5.php?link=http://{unicode_URL}

可以這樣轉的嘛,還是一定要放於 homepage 的 header 裡頭哩

maninnet 2006-09-04 23:44
將以下 code save file 名為 utl2b5.php
若要讀取的 url 為 http://www.aaa.com/bbb.htm
則以下 code 為 utl2b5.php?url=http://www.aaa.com/bbb.html


<?
function utf8_2_big5($utf8_str) {
      $i=0;
      $len = strlen($utf8_str);
      $big5_str="";
      for ($i=0;$i<$len;$i++) {
          $sbit = ord(substr($utf8_str,$i,1));
          if ($sbit < 128) {
            $big5_str.=substr($utf8_str,$i,1);
          } else if($sbit > 191 && $sbit < 224) {
            $new_word=iconv("UTF-8","Big5",substr($utf8_str,$i,2));
            $big5_str.=($new_word=="")?"■":$new_word;
            $i++;
          } else if($sbit > 223 && $sbit < 240) {
            $new_word=iconv("UTF-8","Big5",substr($utf8_str,$i,3));
            $big5_str.=($new_word=="")?"■":$new_word;
            $i+=2;
          } else if($sbit > 239 && $sbit < 248) {
            $new_word=iconv("UTF-8","Big5",substr($utf8_str,$i,4));
            $big5_str.=($new_word=="")?"■":$new_word;
            $i+=3;
          }
      }
      return $big5_str;
}
?>

<?
$url=$_GET['url'];
$requesturl = $url;
if ($fp = fopen("$requesturl","r")){
while(!feof($fp))
{
  $line .= fgets($fp,256);
}
fclose($fp);
}
echo(utf8_2_big5($line));
?>


查看完整版本: [-- php: utf8 轉 big5 --] [-- top --]


Powered by PHPWind v4.0.1 Code © 2003-05 PHPWind
Gzip enabled

You can contact us