星期六, 2月 25, 2006

MSN 中文編碼轉碼

由於使用Ethereal 分析封包在訊息為中文的時候為亂碼..........
其實為Unicode
故轉碼的方式為
1.選取該訊息部份內容 --> 滑鼠右鍵 --> Export selected Packet Bytes
-->選取儲存目錄 -->儲存

2.在Linux內可用 iconv 指令來轉碼
參考
http://pcfarm.sinica.edu.tw/docs/utf8-big5-comparison/report.html

轉貼如下:
六、UTF8 碼轉 BIG5 碼測試

測試完 BIG5 轉 UTF8 之後,接著反過來測 UTF8 轉 BIG5。測試資料直接使用上一節轉碼之後的結果。由於 utf8-iconv.txt 和 utf8-msword-1.txt 的內容一樣,所以任取一個檔即可。為了測試方便,將該測試資料改名為 utf8.txt。

*
使用 iconv 將 UTF8 碼轉成 BIG5
iconv 以 -f 參數指定輸入資料的編碼,-t 參數指定輸出資料的編碼。轉碼指令如下:

$ iconv -f utf8 -t big5 utf8.txt > big5-iconv.txt

3.故使用
#iconv -f utf8 -t big5 utf8.txt > big5-conv.txt
# cat utf8.txt
\u96ff\uffff\u929d\uffff\uffff\uffff\u822a\uffff\uffff\uffff\uff7b\u96a1\u8200\uffff\uffff\uffff\uffff\uffff\uffff\uffff
# cat big5-conv.txt
你不是要去伯朗咖啡


以上^^

星期二, 2月 21, 2006

Shell Programing note

*調查使用 | (pipe) 來連結各指令的終止碼 (bash篇)

[root@localhost tmp]# ls
gconfd-root kde-root mcop-root ssh-wqbnVl2901 xses-root.kUqU56
kdecache-root ksocket-root orbit-root test.sh
[root@localhost tmp]# cat test.sdd | wc -l
cat: test.sdd: 沒有此一檔案或目錄
0
[root@localhost tmp]# echo $?
0 <----無法由return code知道 cat test.sdd執行失敗
[root@localhost tmp]# cat test.sdd | wc -l
cat: test.sdd: 沒有此一檔案或目錄
0
[root@localhost tmp]# echo ${PIPESTATUS[0]}
1 <----利用${PIPESTATUS[n]} 這個陣列的變數便可知道執行失敗
[root@localhost tmp]# cat test.sdd | wc -l ; set | grep -i pipe
cat: test.sdd: 沒有此一檔案或目錄
0
LESSOPEN='|/usr/bin/lesspipe.sh %s'
PIPESTATUS=([0]="1" [1]="0")