Chinaunix首页 | 论坛 | 博客
  • 博客访问: 533886
  • 博文数量: 526
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 3235
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-29 17:52
文章分类

全部博文(526)

文章存档

2011年(1)

2008年(525)

我的朋友

分类: LINUX

2008-08-29 18:05:27

 
  这里讨论的方法主要解决以下问题:

  1、通常只能以fat区共享数据(NTFS写不安全)

  2、但在Linux下访问fat区,不能有全为大写的文件名,导致程序开发时需要的诸如AUTHORS、README、NEWS等文件变成不规范的小写形式,更严重的是CVS目录变成了cvs!

  3、但在Linux下访问fat区,无法建立符号链,导致程序开发时autoconf、automake无法执行

  4、但在Linux下访问fat区,由于没有“x”标志,所有文件都统统具有了执行标志;

  所以考虑用Linux下的文件系统作为共享区,在Windows下装对应的驱动。ReiserFS的Windows驱动不成熟,几乎每次都导致WindowsXP蓝屏,所以不得不用ext3,找了一个比较稳重的Windows驱动:Ext2IFS,最新版本是1.10b,这样就能把ext3区挂载成为某个盘(比如:D:\)来访问。

  新的问题又出现了,Windows默认代码页是GB2312(cp936),而ext3不进行文件名底层转码,也就是说Linux端也必须使用zh_CN.GB2312环境,否则总有一边的中文文件名会是乱码,经过百般尝试,无解。

  现在不得已只能把Linux环境设置为zh_CN.GB2312,放弃标准的UTF-8,设置的方法是编辑/etc/locale.gen,将zh_CNGB2312置于文件最后(没有就加上),再运行locale-gen,登录XWindow的时候选择“中文(中国)”即可。

  需要注意的问题是,GTK从2.x的某个版本开始默认的底层编码就变成了UTF-8,导致不能正确处理GB2312的文件名,不过设置两个环境变量即可,可编辑/etc/environment文件,在末尾加入如下两行:

  G_FILENAME_ENCODING=@locale
  G_BROKEN_FILENAMES=1

  第一行就不必解释了,地球人一看就知道,加入第二行的原因是,GTK的程序创建中文名文件时不管三七二十一,都使用UTF-8,而不是环境设置的GB2312,所以只能强制它不这样做了!

  这样Linux与Windows的数据沟通就畅通无阻了,美中不足的是不得不又退回了GB2312的时代。

Linux与Windows利用ext3共享数据Linux与Windows利用ext3共享数据Linux与Windows利用ext3共享数据Linux与Windows利用ext3共享数据Linux与Windows利用ext3共享数据Linux与Windows利用ext3共享数据Linux与Windows利用ext3共享数据Linux与Windows利用ext3共享数据Linux与Windows利用ext3共享数据Linux与Windows利用ext3共享数据
阅读(461) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~