找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 5414|回复: 9

samba gb2312 中文方案

[复制链接]
本帖最后由 redsoft 于 2014-9-12 11:55 编辑

我从不使用 ut8编码,因为utf8带来的效率损失还是不因该属于专来人士能接受的范围。
所以以前挂samba老是乱码,一直没空解决这个问题,最近抽了点时间用 gdb debug了一下,基本理清了。
1.首先这无关内核,不需要什么重新编译内核,增加nls-gb2312的模块,这模块有什么用,
可能只是用于 mount fat32的文件系统的,在路由器中本地显示中文的,
ext3的分区不需要的,因为 ext3 filesystem 是通过 loale interpret 的
但总体而言,nls-gb2312这个模块跟samba 没有必要性关联.
2. 其次,所有官方源的 samba包全是 strip的,没包含 iconv的支持,好象可以支持 native encode,
可能就是使用 nls-gb2312了,但我没试,因为这个方案有很大拘限性,(要改内核,这对快速安装很麻烦的
其次象短信网关转码时还是受限)
所以要重新编译 samba ,增加 libiconv的支持
3. 所有官方源的 libiconv-full 包全是 strip的, 别被它的 full迷惑住,官源的 libiconv是不带cjk
支持的。所以所以要重新编译 libiconv ,去除它对  charsets 的 strip,本想自己重新写个 patch的,
但直接去除官方charset patch 后新编译后代码增量不大,不动算了。时间不因该浪费在没有意义的工作上。



d

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
我的恩山、我的无线 The best wifi forum is right here.
"utf8带来的效率损失还是不因该属于专来人士能接受的范围"
能解释详细点么

点评

UTF-8 is less efficient in storage for characters in CJK (Chinese, Japanese, and Korean) languages comparing to UTF-16 encoding. The code points for most of characters in CJK languages are in the U  详情 回复 发表于 2014-9-12 14:56
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

结论就是图??
不过目前U盘使用的是EXT3方案,稳定靠谱,不过通过插件WIN7也可以直接读写EXT3分区的,凑合用吧
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

本帖最后由 djjk 于 2016-6-26 12:40 编辑

!!!

点评

系统用unicdo编吗,那才更麻烦。你在windows客户端一旦进行了文件名相关的修改,那到了linux里立马成了恶梦,一堆无法批量修改的混杂着gb2312和utf8的文件名的垃圾,很多文件操作直接接导致无法调试的异常出错,你恐  详情 回复 发表于 2014-9-12 15:24
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
zhongli_1978 发表于 2014-9-12 12:47
"utf8带来的效率损失还是不因该属于专来人士能接受的范围"
能解释详细点么

UTF-8 is less efficient in storage for characters in CJK
(Chinese, Japanese, and Korean) languages comparing to UTF-16
encoding. The code points for most of characters in CJK
languages are in the U+000800...U+00FFFF range, which will be
encoded in UTF-8 with 3 bytes per character. UTF-16 will encode
all characters ( 注意,是all characters,而不仅是 cjk characters)
2 bytes per character.


example:
+---------------------------------------------------+
| $cd /tmp/                                         |
| $curl -o gb2312.html http://wwww.sina.com.cn/     |
| $iconv -f GB2312 -t UTF-16 gb2312.html > utf8.html|
| $ls -al *.html                                    |
|-rw-r--r-- 1 lwf lwf  686  9月 12 14:37 gb2312.html|
|-rw-r--r-- 1 lwf lwf 1374  9月 12 14:38 utf8.html  |
+---------------------------------------------------+
所以没几个中文网站用utf8, windows 也不用。 linux 现在对 i18n支持得很好


我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
djjk 发表于 2014-9-12 12:55
就是个文件名而已,一个文件充其量255个字节,有这么夸张? 如果系统是Unicode编码,使用GB2312的代价反而 ...

系统用unicdo编吗,那才更麻烦。你在windows客户端一旦进行了文件名相关的修改,那到了linux里立马成了恶梦,一堆无法批量修改的混杂着gb2312和utf8的文件名的垃圾,很多文件操作直接接导致无法调试的异常出错,你恐怕只能一个一个改了。或者你强制所有人的windows重装改编吗,并将所有windows系统上的历史资料转码成utf8的,当然还得多买些硬盘。

点评

windows xp之后的文件系统编码都是unicode格式的,utf8 is recommend for transfering,你想换别的都没得选吧。不要告诉我你还在用win95。至于买更多硬盘更是无稽之谈,就算用utf8存储中文文件名也不会增加多少消耗  详情 回复 发表于 2014-9-12 15:43
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

本帖最后由 djjk 于 2016-6-26 12:38 编辑

!!!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

本帖最后由 djjk 于 2016-6-26 12:38 编辑

!!!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

本帖最后由 djjk 于 2016-6-26 12:38 编辑

!!!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

作为一个年纪很大的程序猿,俺是否同意@djjk同志的观点
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-4-27 19:54

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表