用 PHP header 方式讓瀏覽器下載檔案,結果下載時檔名變成亂碼,原因是因為 FireFox 和其他瀏覽器換辨識 header content-type 的文字編碼,但是 IE 卻不會,所以必須自己將編碼從 UTF-8 轉成 Big5。
$file_name = iconv('utf-8','big5',$file_name);
軟體開發、伺服器和生活瑣事
用 PHP header 方式讓瀏覽器下載檔案,結果下載時檔名變成亂碼,原因是因為 FireFox 和其他瀏覽器換辨識 header content-type 的文字編碼,但是 IE 卻不會,所以必須自己將編碼從 UTF-8 轉成 Big5。
$file_name = iconv('utf-8','big5',$file_name);
做投影片的方式很特別,因為一張投影片平均只有幾秒鐘,內容又很風趣,所以大家會很期待下一張投影片寫什麼,一點也不會覺得睏。
這跟我以前一張投影片講十五分鐘的作法完全不同,我承認以前投影片的內容很紮實,但是那種作法除非台下人很有興趣,不然一點吸引力都沒有。這次要教網路架站和 WordPress 使用教學,我決定要試一試這種作法,目前二個小時 (包括實作的時間),共準備了約 80 張投影片,希望能讓人沒有上課的壓力,玩得開心一點。
今天用找質數問題來練習 Java,並且把質數範圍定到十位數之上,逼自己學 BigDecimal,順便看看 Java 可以跑多快。
Java 在四位數執行速度還蠻快的,至少沒有讓我等到睡著,但是後面就沒有那麼輕鬆了。後來想到小學習題有提到質數和「6」的關係,不過不知道為什麼國中之後就完全沒有蛛絲馬跡,乾脆拿出來跑一次看看這個理論是不是真的。
以下是 1 到 100 的質數:
1 = 6 * 0 + 1
2
3
5 = 6 * 1 – 1
7 = 6 * 1 + 1
11 = 6 * 2 – 1
13 = 6 * 2 + 1
17 = 6 * 3 – 1
19 = 6 * 3 + 1
23 = 6 * 4 – 1
29 = 6 * 5 – 1
31 = 6 * 5 + 1
37 = 6 * 6 + 1
41 = 6 * 7 – 1
43 = 6 * 7 + 1
47 = 6 * 8 – 1
53 = 6 * 9 – 1
59 = 6 * 10 – 1
61 = 6 * 10 + 1
67 = 6 * 11 + 1
71 = 6 * 12 – 1
73 = 6 * 12 + 1
79 = 6 * 13 + 1
83 = 6 * 14 – 1
89 = 6 * 15 – 1
97 = 6 * 16 + 1
以目前的狀況來看,質數都是 6 的倍數加減 1。但是不知道往後這個理論是不是還能用,點名叫 legnaleurc 證明一下好了…. XD
另外在 PTT 上有找到幾個演算法,有興趣可以去寫寫看。
Sieve of Eratosthenes @ MathWorld
http://mathworld.wolfram.com/SieveofEratosthenes.html
Prime Sieve of Eratosthenes @ Algorithmist
http://www.algorithmist.com/index.php/Sieve
2008.07.03 補充:
挖到一篇文章,裡面提到「為什麼要找質數」,理由如下:
質數的附加價值很多,例如 RSA 加密演算法,就是利用超大質數相乘不容易因式分解,增加沒有 key 時解密的困難度,而找到超大的質數表示你你努力、很聰明,大家會對你無比的尊敬,還給你一筆很大的獎金。
Neo’s 這篇寫的蠻詳細的,知道詐騙手法以後就請大家多多留意吧!
Neo's Blog: 購物網站資料外洩? 詐騙集團如何取得訂購資料?