Encoding Problem in Nodejs

還記得那個PHP與Mysql的年代(不要故意用這種奇怪的講法 XDD),語系轉換的問題常常是開發者常見的問題,不過邁進2012的現在,「應該」大部分的網頁都已經是UTF-8為主了(正確應該說大部分本人逛的網站),所以要處理語系轉換的情況應該少了許多。

不過同事很幸運的遇到這個問題,然後在nodejs的情況下到底要怎麼解決

快速翻了一下找到一篇不錯的教學文 :p NodeJS笔记:处理非utf8编码(续) 不過真的要說,如果要拿nodejs來開發的話,還是不要走這種回頭路吧,全部UTF8不是很好嗎 XD

有兩個套件可以拿來解決這個問題,node-iconv&iconv-lite,兩者差異在於一個是原生支援的iconv,一個則是用JS刻出來的,可以就自己的開發環境來選擇,我這邊是用node-iconv來處理。

簡單的步驟就是,request->response->buffer->iconv->DONE!! 也不一定要用buffer,直接送字串進去應該也可以,不過既然回來就是buffer何必多作一手呢 :p。

node-iconv在遇到無法轉換的文字時,可以支援兩種處理方式:TRANSLIT || IGNORE,就是轉成相似的或是直接忽略。幸好有強者開發這些模組,不然還真不知道該怎麼辦...orz

Ferrari Lee

Read more posts by this author.

Subscribe to Ferrari != Ferrari

Get the latest posts delivered right to your inbox.

or subscribe via RSS with Feedly!