LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 810|回复: 9

外接的usb硬盘中无法创建中文文件名的文件

[复制链接]
发表于 2008-12-12 16:40:27 | 显示全部楼层 |阅读模式
外接的usb硬盘中无法创建中文文件名的文件?

请问如何解决
发表于 2008-12-12 17:55:58 | 显示全部楼层
-o iocharset=cp936
回复 支持 反对

使用道具 举报

发表于 2008-12-12 18:24:11 | 显示全部楼层
挂载的时候加上参数

ps:iocharset=cp936也许不是很好,如果locale是utf8,加上utf8是最好的,因为可能正确显示中文,写入的中文在win下却是乱码
回复 支持 反对

使用道具 举报

发表于 2008-12-12 21:02:39 | 显示全部楼层
内核中FAT的NLS支持要开启,比如FAT默认的codepage应该是936(简体中文)
  1. CONFIG_NLS=y
  2. CONFIG_FAT_DEFAULT_CODEPAGE=936
  3. CONFIG_NLS_CODEPAGE_936=y
  4. CONFIG_NLS_DEFAULT="gb18030"
  5. CONFIG_NLS_UTF8=y
复制代码
之后在/etc/fstab中加上类似的:
  1. /dev/sdb1                /mnt/usb        vfat                noauto,async,user,uid=acevery,gid=users,iocharset=utf8        0 0
复制代码
回复 支持 反对

使用道具 举报

发表于 2008-12-15 09:27:06 | 显示全部楼层
最好在kernel里直接原生态支持简体中文.可行的话兄台还是make下吧.
回复 支持 反对

使用道具 举报

发表于 2008-12-15 10:41:18 | 显示全部楼层
fat/fat32用“-o codepage=cp936,iocharset=utf8”,如果不行就把codepage=cp936去掉,ntfs用“-o utf8”。

当然最好的方法是重新编译内核,在filesystem的native language support里设置默认io字符集。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-15 11:22:58 | 显示全部楼层
Post by xiaorui;1924029
最好在kernel里直接原生态支持简体中文.可行的话兄台还是make下吧.


我其他的ntfs分区(从fstab挂载的)都很正常,请问需要如何设置内核参数。谢谢
我的locale是
LANG=en_US.UTF-8
LC_CTYPE=zh_CN.gbk
LC_NUMERIC=en_US
LC_TIME=en_US
LC_COLLATE=en_US
LC_MONETARY=en_US
LC_MESSAGES=en_US
LC_PAPER=en_US
LC_NAME=en_US
LC_ADDRESS=en_US
LC_TELEPHONE=en_US
LC_MEASUREMENT=en_US
LC_IDENTIFICATION=en_US
LC_ALL=
回复 支持 反对

使用道具 举报

发表于 2008-12-15 17:03:18 | 显示全部楼层
其它的分区挂载正常就不用动内核了, man mount 吧
回复 支持 反对

使用道具 举报

发表于 2008-12-15 18:19:27 | 显示全部楼层
其实主要kernel和profile支持的是utf8 就是没有问题了。
主要还在有个支持中文的字体阿。我特喜欢把微软的雅黑copy到linux下。
回复 支持 反对

使用道具 举报

发表于 2008-12-15 18:48:38 | 显示全部楼层
手工挂载一次好像就用就生效,除非重装系统。 "-o iocharset=utf8"这个好用。
  1. localhost ~ # locale
  2. LANG=en_US.UTF-8
  3. LC_CTYPE=[color=red]zh_CN.UTF-8[/color]
  4. LC_NUMERIC=en_US.UTF-8
  5. LC_TIME=en_US.UTF-8
  6. LC_COLLATE=[color=red]zh_CN.UTF-8[/color]
  7. LC_MONETARY=en_US.UTF-8
  8. LC_MESSAGES=en_US.UTF-8
  9. LC_PAPER=en_US.UTF-8
  10. LC_NAME=en_US.UTF-8
  11. LC_ADDRESS=en_US.UTF-8
  12. LC_TELEPHONE=en_US.UTF-8
  13. LC_MEASUREMENT=en_US.UTF-8
  14. LC_IDENTIFICATION=en_US.UTF-8
  15. LC_ALL=
复制代码
回复 支持 反对

使用道具 举报

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

本版积分规则

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