document.getElementById("框架ID").contentWindow.document.getElementById("框架下的物件ID")
Found 36 records. At Page 7 / 8.
document.getElementById("框架ID").contentWindow.document.getElementById("框架下的物件ID")
This entry was posted in Experience, Functions By Weil Jimmer.
大概就這樣,以後再補充!
This entry was posted in Software, Experience, Functions By Weil Jimmer.
關於這點,真的是有夠麻煩的,我經常寫php,php通常UTF-8的網頁都是 "一個中文字"
轉成三個Ascii碼,現在才開始研究,到底要怎樣才可以像 VB 一樣 轉成 5位數的代碼。
又或者 VB 轉成 UTF-8形式的 3 個 ASCII。
好吧,結果出來了。
Unicode 介於 2048(800) ~ 65535(ffff) 之間:
套用形式:
1110****
10******
10******
比如:「我」,Unicode 為 25105 (6211),介於上述的情況。
所以:轉成 2進位 110001000010001
切成 三等分,第一等分 四位數,第二等分 六位數,第三等份六位數。不足則補0。
所以變成 0110001000010001,切割後變成:
0110
001000
010001
套進去變成
11100110
10001000
10010001
轉回 10 進位:
230
136
145
形成 UTF8形式的 三個ASCII碼。
另外,介於 128(80) ~ 2047(7ff) 間 則是另一個形式。
110*****
10******
大概就這樣。
有夠複雜的。
其實網頁 也可以 直譯 ASCII碼。
ABC
ABC
這是測試
這是測試
我自己本身也寫了 PHP函數 轉 成 像 VB那樣的UTF16
function string_to_utf16_ascii_HTML($str){
for ($i=0;$str[$i]!="";$i++){
$b[]=ord($str[$i]);
}
$str2=';&#';
for ($i=0;$str[$i]!="";$i++){
$xa=str_pad(decbin($b[$i]),8,'0',STR_PAD_LEFT);
if (substr($xa,0,3) == "110"){
$xb=str_pad(decbin($b[$i+1]),8,'0',STR_PAD_LEFT);
$xx1=substr($xa,3);
$xx2=substr($xb,2);
$c=$c.$str2.bindec($xx1.$xx2);
}elseif (substr($xa,0,4) == "1110"){
$xb=str_pad(decbin($b[$i+1]),8,'0',STR_PAD_LEFT);
$xc=str_pad(decbin($b[$i+2]),8,'0',STR_PAD_LEFT);
$xx1=substr($xa,3);
$xx2=substr($xb,2);
$xx3=substr($xc,2);
$c=$c.$str2.bindec($xx1.$xx2.$xx3);
}elseif (substr($xa,0,2) == "10"){
}else{
$c=$c.$str2.$b[$i];
}
}
return substr($c,1);
}
再次更新,這個PHP代碼速度更快。
function string_to_utf16_ascii_HTML($str){
for ($i=0;$i<strlen($str);$i++){
$k=ord($str[$i]);
if ($k >= 192 and $k <= 223){
$k=$k-192;
$k2=ord($str[$i+1])-128;
$c=$c.'&#'.str_pad($k*64+$k2,5,'0',STR_PAD_LEFT).';';
}elseif ($k >= 224 and $k <= 239){
$k=$k-224;
$k2=ord($str[$i+1])-128;
$k3=ord($str[$i+2])-128;
$c=$c.'&#'.str_pad($k*4096+$k2*64+$k3,5,'0',STR_PAD_LEFT).';';
}elseif ($k >= 128 and $k <= 191){
}else{
$c=$c.'&#'.str_pad($k,5,'0',STR_PAD_LEFT).';';
}
}
return $c;
}
又寫了等價VB的ChrW於PHP版。
function ChrW($str){
$str=intval($str);
$binnum=decbin($str);
if ($str<=255){ return chr($str); }elseif($str>=256 and $str<=2047){
$binnum=str_pad($binnum,11,'0',STR_PAD_LEFT);
$x1=bindec('110'.substr($binnum,0,5));
$x2=bindec('10'.substr($binnum,5,6));
return chr($x1).chr($x2);
}else{
$binnum=str_pad($binnum,16,'0',STR_PAD_LEFT);
$x1=bindec('1110'.substr($binnum,0,4));
$x2=bindec('10'.substr($binnum,4,6));
$x3=bindec('10'.substr($binnum,10,6));
return chr($x1).chr($x2).chr($x3);
}
}
This entry was posted in Functions, PHP, VB.NET By Weil Jimmer.
這個問題真的很難處理很難處理!然而網路上也是Google 很久才有的資料。
好吧進入正題。
首先,大家應該都知道,進位算法就是取餘數,但是小數的算法卻是 乘 起來,取整。
Example:
*****0.625 轉 2進位制:
第1式:0.625 × 2 = 1.250 =======>1
第2式:0.250 × 2 = 0.500 =======>0
第3式:0.500 × 2 = 1.000 =======>1
答案是:101
*****0.125 轉 2進位制:
第1式:0.125 × 2 = 0.250 =======>0
第2式:0.250 × 2 = 0.500 =======>0
第3式:0.500 × 2 = 1.000 =======>1
答案是:001
*****0.3 轉 2進位制:
第1式:0.3 × 2 = 0.6 =======>0
第2式:0.6 × 2 = 1.2 =======>1
第3式:0.2 × 2 = 0.4 =======>0
第4式:0.4 × 2 = 0.8 =======>0
第5式:0.8 × 2 = 1.6 =======>1
第5式 偵測到重複字串,造成循環無限小數。
由第2式開始循環字串。
答案是:01001
這樣大概就夠了,這是 10 轉 2 的方式,其他就以此類推。
但是網路上很少有提到!轉回來。只有轉過去。
123.45 = 1 × 102 + 2 × 101 + 3 × 100 + 4 × 10-1 + 5 × 10-2
所以,小數點後,如果是2進位,則是2-1、2-2、2-3 ‧‧‧‧‧‧‧以此類推。
真是難處理,尤其是無限小數的轉換。
所以,我原本也想做一個很棒的程式,但看樣子,我也許得放棄了。
因為有夠麻煩!我目前的程式因為 算的精度太高了,所以無法處理無限小數的問題。
我大概 應該還會繼續完成的樣子,只是需要時間思考。
This entry was posted in Functions By Weil Jimmer.
安裝微軟推出的相容性補丁:
http://www.microsoft.com/zh-hk/download/details.aspx?id=3
學校電腦真的很破爛,不管怎樣大多數都是 2003 ,我家電腦都是最新版了 2013。火大。要搜尋速度又慢,要找個官網找很久,現在發在我blog連結。以後方便我自己找。
This entry was posted in Functions By Weil Jimmer.
White Birch Forum © Copyright
©2010- W.B.F. All Rights Reserved.
Weil Jimmer Web PHP Script