[分享] 打造 Unicode 的環境

常言道:『飲水思源』,在 Open Source 的世界裡,我們常常需要別人的幫助,但是在您有所心得的時候請記得分享給大家,『幫助人是快樂的喔』。歡迎您在使用 debian 的過程中的任何心得分享給大家。

文章semson » 週一 12月 19, 2005 8:47 am

Jackie 寫:tommyさん的FileZilla patch真的很有用(小弟感激不盡>"<)
這樣在Windows下就有一個免費的Unicode的FTP client了^^
不過由於官方後來一直有出新版
但是卻都沒有開放Unicode版提供下載
剛剛閒著沒事編了一個2.2.17a版本的.....
需要的人請笑納......^^

http://ku.myftp.org/goods/FileZilla_2.2.17a_Unicode.zip

收下了, 謝謝 :finger1:
semson
可愛的小學生
可愛的小學生
 
文章: 60
註冊時間: 週五 4月 15, 2005 12:59 am

Re: re:[分享] 打造 Unicode 的環境

文章Tetralet » 週一 12月 19, 2005 11:59 am

semson 寫:
Tetralet 寫:只要使用以下方式掛載 MS Windows 機器所分享的目錄:
代碼: 選擇全部
mount -t cifs -o username=*UserName*,iocharset=utf8 //FileServer/共用區 /mnt

這樣就能夠正常存取在 MS Windows 機器上有非 Big5 文字的 Unicode 檔名了。

請教Tetralet, 這個方法能否應用到 Linux存取Samba Sever 的個案中?要開的服務能省就省 :mrgreen:

可以。

缺點是只有 root 才能以 cifs 來掛載目錄。
時間並不能治療我心中的疼痛
南方的春天說什麼也溫暖不了我冰冷的血

誦唱大復活咒文,今天的 Tetralet 又在唧唧喳喳了 重生!
Tetralet
俺是博士
俺是博士
 
文章: 3078
註冊時間: 週四 11月 28, 2002 3:02 pm

文章twu2 » 週一 12月 19, 2005 12:50 pm

Jackie 寫:不過由於官方後來一直有出新版
但是卻都沒有開放Unicode版提供下載


我放的那個 link, 通常也是有更新... 只是時間不一定, 也不會上來公告.
至於為什麼官方不放出 unicode 版本.... 我想或許是因為 sftp 的關係吧. 因為到目前為止, 仍沒有跡象顯示作者要接受該 patch. 其實改的也不多 (之前 ftp 的部份改的反而比較多些), 也許是因為不打算在 2.2.x 做, 等到 Fz3 一次解決吧. 也或者是為了維持與 win 9x 系列的相容吧. (我沒試過這個 unicode 的版本在 9x 到底能不能正常使用)
twu2
懵懂的國中生
懵懂的國中生
 
文章: 219
註冊時間: 週二 3月 11, 2003 2:58 pm
來自: Taipei

文章Jackie » 週一 12月 19, 2005 3:49 pm

twu2 寫:
Jackie 寫:不過由於官方後來一直有出新版
但是卻都沒有開放Unicode版提供下載


我放的那個 link, 通常也是有更新... 只是時間不一定, 也不會上來公告.
至於為什麼官方不放出 unicode 版本.... 我想或許是因為 sftp 的關係吧. 因為到目前為止, 仍沒有跡象顯示作者要接受該 patch. 其實改的也不多 (之前 ftp 的部份改的反而比較多些), 也許是因為不打算在 2.2.x 做, 等到 Fz3 一次解決吧. 也或者是為了維持與 win 9x 系列的相容吧. (我沒試過這個 unicode 的版本在 9x 到底能不能正常使用)


FZ3的主要目標似乎是port到其他platform...
由於每個作業系統處理Unicode的方式不太一樣....
因此FZ3到時候能不能正確的在Windows下支援Unicode其實我覺得並不樂觀@@

我個人是覺得官方應該放兩種版本給大家下載...
要不然就是用MSLU來解決Win9x不能跑Unicode bulid的問題....
無論如何.....
既然官方那邊不正視這個問題(畢竟老外大概都不需要Unicode吧...)
我們就只好自力救濟了^^
Jackie
可愛的小學生
可愛的小學生
 
文章: 6
註冊時間: 週一 12月 19, 2005 4:49 am

Re: re:[分享] 打造 Unicode 的環境

文章semson » 週一 12月 19, 2005 11:36 pm

Tetralet 寫:
semson 寫:
Tetralet 寫:只要使用以下方式掛載 MS Windows 機器所分享的目錄:
代碼: 選擇全部
mount -t cifs -o username=*UserName*,iocharset=utf8 //FileServer/共用區 /mnt

這樣就能夠正常存取在 MS Windows 機器上有非 Big5 文字的 Unicode 檔名了。

請教Tetralet, 這個方法能否應用到 Linux存取Samba Sever 的個案中?要開的服務能省就省 :mrgreen:

可以。

缺點是只有 root 才能以 cifs 來掛載目錄。

你好Tetralet, 我剛剛試了一下, 是的用CIFS mount 就可正常顯示非big5的 unicode, 但試驗中遇到幾問題:
1. 我的samba侍服器就叫 samba, 以往我是以 //samba/folder這樣來掛載的, 但 cifs就不認//samba了, 非得用IP不可, 相關錯誤訊息如下
mount error: could not find target server. TCP name samba/common not found
No ip address specified and hostname not found

2. 我的samba預設打開了 CIFS Unix extensions, 一掛上就是遠端samba侍服器的 uid/gid, 我在掛載時指定的 uid/gid無效.... 我看總不能改用戶端的uid/gid來僊就吧, 這樣電腦一多就變得不可行; 莫不是, 非得停用CIFS Unix extensions嗎?? 還請指教 :(
semson
可愛的小學生
可愛的小學生
 
文章: 60
註冊時間: 週五 4月 15, 2005 12:59 am

Re: re:[分享] 打造 Unicode 的環境

文章Jackie » 週五 3月 17, 2006 9:53 pm

Tetralet 寫:這個問題找到解決方案了,
只要使用以下方式掛載 MS Windows 機器所分享的目錄:
代碼: 選擇全部
mount -t cifs -o username=*UserName*,iocharset=utf8 //FileServer/共用區 /mnt

這樣就能夠正常存取在 MS Windows 機器上有非 Big5 文字的 Unicode 檔名了。


這個方法確實可行........
CIFS似乎預設就用Unicode來做溝通
不過這幾天發現CIFS"讀取"方面的效能有點糟(主要是因為我透過兩成不同的通訊協定在傳輸才發現的....一般使用應該還好)
所以就想說在試試SMBFS看看.......
記得很久以前我曾經試過我想得到的所有參數組合就是找不到讓SMBFS正確支援Unicode的方法(我需要的不單單只有中文,所以codepage=cp950是不可行的)
最後終於在Google上面找到這樣的用法
代碼: 選擇全部
mount -t smbfs -o unicode,codepage=unicode,iocharset=utf8 //FileServer/共用區 /mnt

我以前怎也沒想到 codepage=unicode 這個參數設置 (我試過cp950、utf8、utf-8、utf-16、utf16、utf-16le.........就是沒想過要填unicode.......XD)
而這個設置也確實可以讓smbfs正確的存取Unicode檔名......(至少在我的機器上)
Jackie
可愛的小學生
可愛的小學生
 
文章: 6
註冊時間: 週一 12月 19, 2005 4:49 am

Re: re:[分享] 打造 Unicode 的環境

文章semson » 週六 3月 18, 2006 1:19 am

Jackie 寫:
代碼: 選擇全部
mount -t smbfs -o unicode,codepage=unicode,iocharset=utf8 //FileServer/共用區 /mnt

我以前怎也沒想到 codepage=unicode 這個參數設置 (我試過cp950、utf8、utf-8、utf-16、utf16、utf-16le.........就是沒想過要填unicode.......XD)
而這個設置也確實可以讓smbfs正確的存取Unicode檔名......(至少在我的機器上)

這個方法在我的個案上可行 :finger1:
謝謝Jackie :-)
semson
可愛的小學生
可愛的小學生
 
文章: 60
註冊時間: 週五 4月 15, 2005 12:59 am

文章semson » 週六 3月 18, 2006 1:39 am

不過好像寫入fstab裡的不行
semson
可愛的小學生
可愛的小學生
 
文章: 60
註冊時間: 週五 4月 15, 2005 12:59 am

文章Jackie » 週六 3月 18, 2006 3:09 am

semson 寫:不過好像寫入fstab裡的不行

smbfs不會自動重新連線^^"
所以如果你寫在fstab裡面的話...
由於開機的在mount的時候網路可能還沒通 (一般都是這樣吧^^")
這也就是為什麼會失敗囉 :crying:
Jackie
可愛的小學生
可愛的小學生
 
文章: 6
註冊時間: 週一 12月 19, 2005 4:49 am

文章semson » 週六 3月 18, 2006 4:59 pm

RE: Jackie
我本來就不要自動mount的, 我意思是寫在fstab裡, 再手動mount仍然是亂碼
semson
可愛的小學生
可愛的小學生
 
文章: 60
註冊時間: 週五 4月 15, 2005 12:59 am

文章Jackie » 週一 3月 20, 2006 2:10 am

semson 寫:RE: Jackie
我本來就不要自動mount的, 我意思是寫在fstab裡, 再手動mount仍然是亂碼

這我就不知道了...
因為我把那些選項寫在fstab裡面然後用mount -a來mount到是完全正常
雖然其實我不是用Debian....(非Debian使用者來這邊應該不會被排擠吧??XD)
Jackie
可愛的小學生
可愛的小學生
 
文章: 6
註冊時間: 週一 12月 19, 2005 4:49 am

文章twu2 » 週一 3月 20, 2006 10:47 am

nfs, smbfs 之類的東東, 寫在 fstab 應該也可以用啊.
我們公司之前 mount nas 就是這樣寫的.

在 /etc/rcS.d 中, 對於這類的 fs, 會在 network 起來後才去 mount.
twu2
懵懂的國中生
懵懂的國中生
 
文章: 219
註冊時間: 週二 3月 11, 2003 2:58 pm
來自: Taipei

Re: re:[分享] 打造 Unicode 的環境

文章singying304 » 週六 7月 29, 2006 3:49 pm

Anonymous 寫:晚上試了一下 成功了 分享一下經驗

1. 先下載proftpd-1.2.10.tar.bz2
http://www.proftpd.org/

2.下載proftpd-1.2.10-iconv.patch.gz
http://home.h01.itscom.net/para/softwar ... dex-e.html

3.放在同一個資料夾下
tar jxvf proftpd-1.2.10.tar.bz2
解開資料
gzip -cd proftpd-1.2.10-iconv.patch.gz |patch -p0
patch動作

4.在configure時記得加入 "--with-modules=mod_codeconv:mod_df"
make
make install

5.在proftpd.conf設定檔內加入
CharsetLocal UTF-8
CharsetRemote CP950

就可以在windows看到中文啦!!
只是不知道有沒有bug就是了 :-P !!
謝謝收看 ;-)!

不好意思,推舊文,何謂patch 動作? 我不懂用patch..

1. 先下載proftpd-1.2.10.tar.bz2
http://www.proftpd.org/

2.下載proftpd-1.2.10-iconv.patch.gz
http://home.h01.itscom.net/para/soft...v/index-e.html

3.放在同一個資料夾下
tar jxvf proftpd-1.2.10.tar.bz2
解開資料
gzip -cd proftpd-1.2.10-iconv.patch.gz |patch -p0
patch動作

4. cd proftpd-1.2.10

5.在configure時記得加入 "--with-modules=mod_codeconv:mod_df"
即"./configure --prefix=/etc/proftpd --with-modules=mod_codeconv:mod_df"
make
make install

------
請問有沒有錯?

己加
CharsetLocal UTF-8
CharsetRemote CP932
試過CP950,BIG-5,en_US,都不行
singying304
可愛的小學生
可愛的小學生
 
文章: 54
註冊時間: 週一 11月 08, 2004 7:00 pm

文章訪客 » 週二 1月 02, 2007 2:15 pm

twu2 寫:gftp 的修改很簡單.
而且, 修改這個後, 就可以不用我之前加上的那個非標準的 icnv off 指令, 由 gftp 本身就可以處理 utf-8 (或支援 rfc-2640) 的 server, 加上 remote_charsets 設定, 也可以處理其它指定的編碼.

代碼: 選擇全部
diff -Nur gftp-2.0.18/lib/protocols.c gftp-2.0.18.patched/lib/protocols.c

--- gftp-2.0.18/lib/protocols.c   2005-01-25 10:34:18.000000000 +0800
+++ gftp-2.0.18.patched/lib/protocols.c   2005-02-25 23:07:11.000000000 +0800
@@ -450,11 +450,16 @@
     {
       ret = g_convert_with_iconv (str, -1, request->iconv, &bread, &bwrite,
                                   &error);
-      if (ret == NULL)
-        printf (_("Error converting string '%s' from character set %s to character set %s: %s\n"),
-                str, _("<unknown>"), "UTF-8", error->message);
-
-      return (ret);
+      if (ret == NULL) {
+//        printf (_("Error converting string '%s' from character set %s to character set %s: %s\n"),
+//                str, _("<unknown>"), "UTF-8", error->message);
+        g_iconv_close (request->iconv);
+        request->iconv = NULL;
+        request->iconv_initialized = 0;
+      }
+      else {
+        return (ret);
+      }
     }

   gftp_lookup_request_option (request, "remote_charsets", &tempstr);
@@ -521,11 +526,16 @@
     {
       ret = g_convert_with_iconv (str, -1, request->iconv, &bread, &bwrite,
                                   &error);
-      if (ret == NULL)
-        printf (_("Error converting string '%s' from character set %s to character set %s: %s\n"),
-                str, "UTF-8", _("<unknown>"), error->message);
-
-      return (ret);
+      if (ret == NULL) {
+//        printf (_("Error converting string '%s' from character set %s to character set %s: %s\n"),
+//                str, "UTF-8", _("<unknown>"), error->message);
+        g_iconv_close (request->iconv);
+        request->iconv = NULL;
+        request->iconv_initialized = 0;
+      }
+      else {
+        return (ret);
+      }
     }

   gftp_lookup_request_option (request, "remote_charsets", &tempstr);


patch 檔案在:
http://www.teatime.com.tw/~tommy/linux/ ... sets.patch

給 sarge 用的 deb 在這兒:
http://www.teatime.com.tw/~tommy/debian ... -9_all.deb
http://www.teatime.com.tw/~tommy/debian ... 9_i386.deb
http://www.teatime.com.tw/~tommy/debian ... 9_i386.deb
http://www.teatime.com.tw/~tommy/debian ... 9_i386.deb


裝了上述的版本後 發現 utf8 locale 連上 big5 主機 狀況如下

1.server上的字可正常顯示
2.server上的檔案下載 到 locale(utf8) 正常
3.locale(utf8) 檔案無法上傳到 server(big5)

請問 3. 的問題要怎解決阿??
訪客
 

上一頁

回到 share

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客