2007-07-24

Jant Note : JSON encode and decode

描述:
用ajax + json 方式來當作web app 的資料傳遞的架構已經一陣子了. 但是, 一直有一個問題會產生, 那就是特殊字碼跟換行的資料輸出. 首先講到特殊字碼, 一般在http request 裡頭 ? % / 這三個會是一個很大的傳輸問題. 另一個就是, 如果傳輸的資料裡頭有換行, 從client 傳到 server 不會有問題, 但是當資料要由 server 傳回 client ,換行會導致 javascript 在 eval 成 object 有錯誤.

思考:

希望能有一個client 和 server 統一的解法不用針對每一個應用作個別加解密. client再傳送資料的時候可以針對HTTP Request 特殊字碼作編碼, server 在產生JSON String 可以作標準編碼.

解法:
HTTP Request 特殊字碼
找了一下 JavaScript 的文件, 裡頭已經有encodeURI, encodeURIComponent,escape 三種的function來做 http request encode. encodeURI 是針對要傳送的 url , 所以不能自己放string 下去encode, encodeURIComponent 放入一個String 會自己作encode. escape 沒有試過. 所以, 找到的解法就是 使用ajax 傳輸前, 把要傳送資料作encodeURLCompoent 再傳出去就可以了. server 端使用 tomcat 所以, tomcat 會自己做解譯後端程式不用作相對應處理.
JSONString
先前使用自己寫的JSONString function, 裡頭只能應付簡單的字元. 後來去找到 json.org的lib. 使用裡面的JSONObject.quote 來做資料的轉換, 就可以正確的解出資料傳送到client, 換行符號就可以備正常的解譯了.

2007-06-27

Java Note : Base64 encode and decode

最近用Ajax做系統, 比過去處理網頁的東西方便多了. 但是後續衍生的問題也出來, 就是當傳輸的資料包涵Enter時, 會出一些小問題. 尤其是在server端將資料用json 方式傳回到client端後, 用一般的json object 去解的時候, 會產生錯誤.
想到的方法就是在server端將資料作base64編碼, client 收到資料後再做解碼. 要用到這樣的技術,就必須完成 client and server 端的 Base64 encode and decode. 所以, 找了一個 Java 的 Base64 解法, 另外也有人將 Base64 用javascript 寫好了function.
1. apache commons codec
2. Base64.js

2007-06-20

竹北第一次遇到同好

在竹北騎了一年多的strida, 終於讓我遇到同號了. 很可惜只是聊一下天,沒有進一步的溝通. 下依次遇到一定要跟他要聯絡方式.

2007-06-06

Jant Note : FTPFileReader

說明:
在做資料傳遞的系統, 需要用到 FTP 到某一個site 去抓取特定的檔案回來做處理. 爲了省去這樣的code, 寫了一個 FTPFileReader Command. 只要給予參數就可以抓到單一檔案回來local.
如果ftp 過程中發生錯誤, 不會有任何的錯誤訊息. RemoteFile 不存在的話, 會在local 存放一個空的檔案.
使用:

Model =
{
"FTPSite":"${FTPSite}", // ftp site domain name or ip
"Account":"${Account}", // ftp account
"Password":"${Password}", // acount password
"Chdir":"${Chdir}", // change dir path, refer to ftp login root
"RemoteFile":"${RemoteFile}", // ftp site file name
"LocalFile":"${LocalFile}" // local path file name
}

new FTPFileReader().execute(Model);

2007-06-05

Linkstation 改機 2007-06-05

今天拿到leo 下載的 linkstation 1.61 improved EM telnet 版本.
1. 把該檔案解開放在一個目錄裡面.
2. 執行 HD-HGLAN FWUpdate.exe
3. 執行後會建議你關掉window 防火牆. (一定要關掉不然會出甚麼事情,不知道)
4. 開始更新, 更新完後會有訊息.
5. 執行telnet, 就可以 直接進入 linkstation console model.

裝完了上面的版本, 才發現他沒有一些工具軟體.
所以,就安裝了 openlink-0.51b 版本. 不過update 程式會檢查相關的version, 都會顯示不需要再更新韌體. 所以, 是了好多方式, 最後用欺騙的方式, 就是在openlink解開的目錄裡面有一個linkstation_version.txt 把裡面的,VERSION=1.61改成這樣就可以更新韌體, 更新後linkstation裡面的韌體編號還是1.45. 結論就是, linkstation_version.txt 是安裝參考用的.