2011年11月14日 星期一

javascript仿PHP URLENCODE

javascript仿PHP URLENCODE

escape、encodeURI、encodeURIComponent都不行。

<script language="vbscript">
Function str2asc(strstr)
str2asc = hex(asc(strstr))
End Function
Function asc2str(ascasc)
asc2str = chr(ascasc)
End Function
</script>
<script language="javascript" type="text/javascript">
function UrlEncode(str){
   var ret="";
   var strSpecial="!\"#$%&'()*+,/:;<=>?[]^`{|}~%";
   for(var i=0;i<str.length;i++){
   var chr = str.charAt(i);
     var c=str2asc(chr);
     if(parseInt("0x"+c) > 0x7f){
       ret+="%"+c.slice(0,2)+"%"+c.slice(-2);
     }else{
       if(chr==" ")
         ret+="+";
       else if(strSpecial.indexOf(chr)!=-1)
         ret+="%"+c.toString(16);
       else
         ret+=chr;
     }
   }
   return ret;
}
</script>

使用方式

<script language="javascript" type="text/javascript">
alert(UrlEncode("編碼測試"));
</script>

2011年7月22日 星期五

中文字筆畫資料


<?php

$hi = new Test;
$i = $hi->get_ChineseStroke('劉');



class Test
{


Function get_ChineseStroke($Word){

printf("1:%s",'one')."<br>";

If(Strlen($Word) != 2 ) Return false; ## 非雙位元

printf("2:%s",'two')."<br>";

If(Ord($Word[0]) < 0xA1) Return false; ## 非中文碼

$Code=Hexdec(Bin2hex($Word));

$StrokeArray=Array(
Array(1 ,0xA440,0xA441), ## 常用字區
Array(2 ,0xA442,0xA453),
Array(3 ,0xA454,0xA47E),
Array(4 ,0xA4A1,0xA4FD),
Array(5 ,0xA4FE,0xA5DF),
Array(6 ,0xA5E0,0xA6E9),
Array(7 ,0xA6EA,0xA8C2),
Array(8 ,0xA8C3,0xAB44),
Array(9 ,0xAB45,0xADBB),
Array(10,0xADBC,0xB0AD),
Array(11,0xB0AE,0xB3C2),
Array(12,0xB3C3,0xB6C3),
Array(13,0xB6C4,0xB9AB),
Array(14,0xB9AC,0xBBF4),
Array(15,0xBBF5,0xBEA6),
Array(16,0xBEA7,0xC074),
Array(17,0xC075,0xC24E),
Array(18,0xC24F,0xC35E),
Array(19,0xC35F,0xC454),
Array(20,0xC455,0xC4D6),
Array(21,0xC3D7,0xC56A),
Array(22,0xC56B,0xC5C7),
Array(23,0xC5C8,0xC5C7),
Array(24,0xC5F1,0xC654),
Array(25,0xC655,0xC664),
Array(26,0xC665,0xC66B),
Array(27,0xC66C,0xC675),
Array(28,0xC676,0xC67A),
Array(29,0xF9C7,0xF9CB),
Array(2 ,0xC940,0xC944), ## 次常用字區I
Array(3 ,0xC945,0xC94C),
Array(4 ,0xC94D,0xC95C),
Array(5 ,0xC95D,0xC9AA),
Array(6 ,0xC9AB,0xC959),
Array(7 ,0xCA5A,0xCBB0),
Array(8 ,0xCBB1,0xCDDC),
Array(9 ,0xCDDD,0xD0C7),
Array(10,0xD0C8,0xD44A),
Array(11,0xD44B,0xD850),
Array(12,0xD851,0xDCB0),
Array(13,0xDCB1,0xE0EF),
Array(14,0xE0F0,0xE4E5),
Array(15,0xE4E6,0xE8F3),
Array(16,0xE8F4,0xECB8),
Array(17,0xECB9,0xEFB6),
Array(18,0xEFB7,0xF1EA),
Array(19,0xF1EB,0xF3FC),
Array(20,0xF3FD,0xF5BF),
Array(21,0xF5C0,0xF6D5),
Array(22,0xF6D6,0xF7CF),
Array(23,0xF6D6,0xF7CF),
Array(24,0xF8A5,0xF8ED),
Array(25,0xF8E9,0xF96A),
Array(26,0xF96B,0xF9A1),
Array(27,0xF9A2,0xF9B9),
Array(28,0xF9BA,0xF9C5),
Array(29,0xF9C6,0xF9DC),
Array(9 ,0xF9DA,0xF9DA), ## 次常用字區II
Array(12,0xF9DB,0xF9DB),
Array(13,0xF9D6,0xF9D8),
Array(15,0xF9DC,0xF9DC),
Array(16,0xF9D9,0xF9D9),
  Array(30,0xC67B,0xC67D), ## 次常用字區III修正碼
  Array(30,0xF9CC,0xF9CF),
  Array(31,0xF9C6,0xF9C6),
  Array(31,0xF9D0,0xF9D0),
  Array(32,0xF9D1,0xF9D1),
  Array(33,0xC67E,0xC67E),
  Array(33,0xF9D2,0xF9D2),
  Array(34,0xF9D3,0xF9D3),
  Array(36,0xF9D4,0xF9D5));

For($i=0;$i<Count($StrokeArray);$i++)
{
//printf("step4:%s",'step4')."<br>";

If($StrokeArray[$i][1] <= $Code && $StrokeArray[$i][2] >= $Code)
{
//printf("step5:%s",'step5')."<br>";
$aaa = $StrokeArray[$i][0];
//printf("step4:%s",$aaa)."<br>";
Return $StrokeArray[$i][0];
}
// EndIf;
}



}


}

2011年4月16日 星期六

MySQL 設定

max_connect_errors = 1844674407370954751
connect_timeout = 20
skip-name-resolve
slave_net_timeout = 30

#skip-name-resolve:在每次的 MySQL 連線,伺服器端會偵測 Client 的 DNS 反解,這步驟真的有點多餘