2014年5月31日 星期六

utorrent server utf8 encoding issue, CJK character will mess up the filename

我的BT機一直在調整...
BT client最初使用Transmission、Deluge,可是libtorrent似乎有bug
常常出現奇怪的link list錯誤,client就整個掛了,最後換成utorrent Linux版

加上ubuntu 12.04一直有些小問題,某些套件始終沒有更新
OS也從ubuntu換成Debian...

utorrent server即使還是Beta版本,但也算是相當穩定,占用的資源也不多
web ui不管是Desktop或是mobile版本都相當好操作
也可以透過utorrent自己提供的remote utorrent進行操作

只是有個問題困擾了我很久
抓謎片的時候,總是會出現奇怪的狀態
例如下載狀態顯示紅色的錯誤,
有一些謎片下載之後進度跑沒多少或是接近完成的時候會自動停止,而且抓不完
或是下載完成後不會移動到指定的下載目錄

進console去看,發現中文或日文都是一堆的問號
大概就可以猜測到,問題是沒有支援utf8,CJK字元造成的亂碼問題
(CJK: Chinese Japanese Korean)
只是環境已經確定有支援utf8了,為啥軟體還是有問題?
一直沒有沒有查到相關的解法...

今天換個關鍵字找到一篇網誌,
解决ArchLinux的utorrent文件名中文乱码问题
雖然OS不同,但問題的根源是一樣的

簡單說就是啟動軟體的時候,Locale的設定不正確

判斷的方式就是檢查utorrent.log
第一行會顯示目前使用的編碼
[20:53:51] Locale C
代表目前使用POSIX標準編碼,這個編碼不支援utf8
[20:53:51] Locale en_US.UTF-8
後面有utf8的後綴字才表示有支援utf8

修正的方式比較髒一點
直接修改utorrent的啟動script,加上切換locale的指令
以debian 7+utorrent server 3.3為例
修改/etc/init.d/utorrent
在執行utorrent前加上export LANG=en_US.UTF-8
強制切換locale

修改之後重新啟動utorrent即可

先前如果曾經下載過有包含CJK字元的種子
因為下載的時候已經造成亂碼無法回復,只能刪除重新下載
已經下載的資料也會因為檔名與torrent中的資訊不同,必須要手動刪除

留個紀錄:D

沒有留言:

張貼留言

Fix msmtp does not work in old ubuntu/debian version

主要是舊版msmtp沒有處理好email header 現在的smtp伺服器會檢查mail header 寄件人跟帳號不一致不給寄 收件人不是合法mail address自然不能寄 #!/bin/bash # Workaround until mtmsp >= 1.8....