2

我想要做的是能够通过 sshfs 在我的本地 PC 上通过 USS 在大型机上挂载一些文件。我可以这样做,但 sshfs 不会直接从 EBCDIC 转换为 ascii/unicode。有没有我可以设置的标志。

或者,有人知道将 EBCDIC 转换为 ASCII 以便我可以添加到 SSHFS 的库吗?

干杯

标记

4

3 回答 3

4

请注意,尽管透明字符集转换是一种非常危险的游戏。你确定你永远不会通过 SSHFS 读取 EBCDIC 文件以外的任何东西吗?如果有二进制数据怎么办?

一些系统过去使用透明转换:

  • 臭名昭著的 FTP 的“ASCII 模式”,它搞砸了许多二进制下载
  • Linux 中的 vfat 文件系统,其中指出:“执行计算 lseek 的程序不喜欢内核文本转换。有几个人的数据被这种翻译破坏了。小心!”

因此,我强烈建议您注意后果。

为什么不使用可以处理 EBCDIC 的编辑器?Vim eg 可以做到(如果它被编译)。

于 2009-04-03T11:25:03.220 回答
1

有几个用于字符集转换的库 — iconv(通常是 C 库的一部分;参见示例iconv_open)和GNU recode

于 2009-04-03T05:35:54.870 回答
1

我知道自从最初的问题以来已经过去了很多时间,但我会在这里留下信息:
我已经为 sshfs 编写了一个补丁,它添加了 ASCII 和 EBCDIC 之间的自动转换。可以在这里找到:https ://github.com/vadimshchukin/sshfs-ebcdic

该补丁添加了“-t”命令行选项,该选项为应转换的文件定义正则表达式。例如sshfs -t".*" 定义所有文件的转换。

我不得不对转换表进行“硬编码”,因为 EBCDIC 有各种“风格”,并且 iconv 没有根据需要在我的系统上将 ASCII 之间的文本转换为 EBCDIC。这里的优点是有人可以根据需要轻松更改该翻译表。

顺便说一句,我为 win-sshfs 编写了相同的补丁。

于 2015-08-23T10:31:45.803 回答