發表文章

目前顯示的是 7月, 2009的文章

[短詩]白髮

妳的頭髮比以前的長 對我的思念是否有增長 在鳥黑秀髮中可有一根白髮? 那根髮是為誰而長? 分別的日子如細水流長 對妳的思念卻依然增長 我的思念化做一根白髮 那根髮是為妳而長 分開的時間越來越長 但人生要過的日子更長 現實中已不存在的白髮 只在我的心中繼續滋長 子凌~2001/5/12 -------------------- 記得當初寫這篇的時候 其實只寫了前面兩段 而且很順的就寫的差不多了 然後就發現前面兩段的後面四個字是一樣的 於是又寫了第三段 讓大家見笑囉

[Linux] 如何 hex 字串 與 文字互轉

同事在處理編解碼的問題 拿了個字串 "5F20",說它是 "张" 這個字 一看就大概猜到是 UTF16 可是怎麼得到答案呢? 實在不想寫程式,就直接透過 shell 指令來試試看 然後找到 xxd 這個指令 因為是 utf16,所以就算透過 xxd 得到後,也要再透過 iconv 由 utf16 轉回到 utf8 $echo "205F" | xxd -r -p|iconv -f utf16 -t utf8 张 xxd 預設吃的順序是 FFFE(小尾序,代表第二 byte 先讀) 所以原來的 5F20 要改成 205F 那自己加上 BOM "FEFF" 讓它變成大尾序呢? $echo "feff5F20" | xxd -r -p|iconv -f utf16 -t utf8 张 答案是可以的 原來的 "205F" 和 "FFFE205F" 結果是相同的 $echo "FFFE205F" | xxd -r -p|iconv -f utf16 -t utf8 张 也可以由文字反查出 utf16 字串,但終端機的文字還是必須由 utf8 轉為 utf16 $echo "张"|iconv -f utf8 -t utf16|xxd 0000000: fffe 205f 0a00 得到的結果,就看到前面的 fffe ,代表了是小尾序 如果用 hexdump ,則會得到大尾序的結果 $echo "张"|iconv -f utf8 -t utf16|hexdump 0000000 feff 5f20 000a 0000006 延伸: 如何還原 8 bit 字串

[筆記]單軌的 CD 備份成多檔案 mp3

朋友有片 CD 想要備份,封面上明明是印出很多首曲目 可是內容打開一看只有一個音軌,這可麻煩了 不是單單把音軌取出來就行了 而且不知為何,這張 CD 播放軟體透過 CDDB 抓到的還是單軌的資料 以下是我的做法,當然也許有更好的: 1. 將音軌抽出成 wav 檔案,我是直接用 cdfs 做,就是在 nautilus 裡面,對著光碟機就可以直接打開,將裡面的音軌拉到資料夾就直接變成 wav 檔案 2. 將 wav 檔透過 lame 這個程式轉成 mp3,我為了要比較好的音質,所以幾個參數都調整過,當然檔案就比較大 lame -b 320 --preset extreme -V0 Track1.wav out.mp3 3. 在 freedb.org 中尋找專輯資料,輸入轉輯名稱後,同時找到單軌跟多軌的,自動抓到的大概就是單軌的,抓錯了,將多軌的資料下載下來,由檔案前頭發現它是 xmcd 格式,將它抓下來存成 .xmcd 檔案 4. 接著用 mp3splt 來做分割 mp3splt -a -c xxx.xmcd out.mp3 就可以將檔案依 xmcd 的資料分割了 ps: 1. cd 可以直接透過 grip 抓成 mp3 等多種格式 2. 除了 mp3 外,ogg 也是很好的選擇,想要不失真的話可以用 flac 3. xmcd / cddb 格式似乎不是很常用,比較多的分割程式都是用 cue,網路上似乎也找可以找到 cddb2cue 的工具,但筆者沒有試用過

plurk 掛點

圖片
雖然大家都知道最近 plurk 晚上就會不穩 但大多是等很久沒反應,很難得看到如下的畫面 也發現它是用 python 寫的