Samba utf8下 中文共享文件名问题的解决
时间:2004-05-29
来源:互联网
在使用samba的环境中,我的系统使用的是Unicode,在创建Samba共享的时候,如果是中文的共享名,在Windows2000和WinXP以上的系统中,由于有考虑到unicode的设计,所以无论用什么编码都可以看见中文共享名,而Win98和Winme就不可以了,
Samba提供了两个参数来调整:
dos charset 和 unix charset
我的系统原来是gbk的,而其他的系统使用的是Unicode的,这样在个系统之间拷贝文件的时候,如果有中文名,就非常恼火,每次还要转一下编码,这次趁买了新硬盘的机会,将gbk编码转化成了utf8的编码(感谢debian-chinese-gb邮件列表上的carlos,他提示我Debian中有convmv这个命令来将目录中的文件名转换编码,实际上convmv还可以作大小写的转换,很不错),原来在gbk环境下,Samba的配置是
dos charset = cp936
unix charset = cp936
这个样子就很好,可以适应各个客户端(98,me,2k,XP),转化成unicode后,问题来了,如果保持这个设置,各个系统会还是认出中文共享名,但是,它们创建的文件名就是gbk编码,费了老劲不是又走回去了吗?如果都改成UTF8,98和Me又认不到中文共享。
各位看官,在这儿我的脑筋打结了,走了如下弯路:
1,保持配置文件是UTF8编码,然后用GBK的环境编辑samba配置文件,加上GBK的共享文件名,结果:98可以看见中文名,但是无法访问,2k看不到中文共享名。
2,既然98是不支持Unicode,那我就想办法让它支持,在网上居然还真找到了Unicode补完计划,不过是针对Big5的补完,我装上了,没有效果。
3,还有招,我装个南极星,这个不错,可以看见中文共享了,可是,有的中文共享名是好的,有的却残缺不全,比如说,本来名称是“共享文件夹”,看起来却是“共享文件”,这还算好的,有的根本就是乱码。
没辙了,正好肚子不舒服,赶紧撇大条,完了结就打开了。
因为我们的samba的系统是unicode编码的,所以unix charset应当设置为UTF8,98只认gb2312,那就将dos charset设置为cp936.
dos charset = cp936
unix charset = UTF8
我原来以为dos charset 和 unix charset 要设置成一样的,没想到Samba还可以这样玩。
这件事告诉了我们一个道理:有问题想不通的时候,就应该撇大条。
作者: achaoge 发布时间: 2004-05-29
但是 Unicode != UTF-8 哦。
Unicode == UTF-16
http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
----
又及,
sorry, 是我搞错了:

UTF-8 is the byte-oriented encoding form of Unicode.
http://www.unicode.org/faq/utf_bom.html#2
作者: chaisave 发布时间: 2004-05-29
作者: yggdrasil 发布时间: 2004-05-29
作者: memory 发布时间: 2004-05-29
当使用
dos charset = cp936
unix charset = UTF8
时,当客户端浏览Samba共享的时候,Samba会将UTF8转换成gbk显示给客户端,显示没有问题,但是在lib/iconv.c中包含调试信息,就是转换过程中可能有什么问题,几十个人浏览Samba共享的时候,一会儿就把我的磁盘空间占满了。
我暂时把lib/iconv.c中的调试信息注释掉了重新编译安装的。
作者: achaoge 发布时间: 2004-06-03
最初由 chaisave 发表 谢谢分享。 但是 Unicode != UTF-8 哦。 Unicode == UTF-16 http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 ---- 又及, sorry, 是我搞错了: ![]() UTF-8 is the byte-oriented encoding form of Unicode. http://www.unicode.org/faq/utf_bom.html#2 |
我认同你第一个观点:UNICODE != UTF-8
作者: pupilzeng 发布时间: 2004-06-03
so neither UTF-8 nor UTF-16 equal Unicode.
作者: carlos 发布时间: 2004-06-03
看网上有的方案,用proftpd必须要在server和client之间进行转换才行,有用php实现的、有用iconv实现的,但都没有公开资料;
pureftpd 1.0.18以上倒是说支持unicode,但资料也很少。
作者: cyberdna 发布时间: 2004-06-27
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28