Encoding NFS文件名字符是否超出ASCII标准?

Encoding NFS文件名字符是否超出ASCII标准?,encoding,nfs,Encoding,Nfs,我已经实现了自己的NFS服务器,一切正常,但是如何对ASCII标准之外的字符进行编码呢?XDR RFC说字符串被编码为ascii,然后删除所有非ascii字符?但如果我启动了一个我还没有编写的nfs服务器,它似乎支持这些字符 我尝试创建一个名为“hejåäö”的文件夹,它在nfs客户端上正确显示,如果我查看使用WireShark发送的数据,我会得到字符串“hej\345\344\366”或十六进制“68656a20e5e4f6”,这是什么编码 还可以尝试将ed编码为“hej 1+1=2” 试试看

我已经实现了自己的NFS服务器,一切正常,但是如何对ASCII标准之外的字符进行编码呢?XDR RFC说字符串被编码为ascii,然后删除所有非ascii字符?但如果我启动了一个我还没有编写的nfs服务器,它似乎支持这些字符

我尝试创建一个名为“hejåäö”的文件夹,它在nfs客户端上正确显示,如果我查看使用WireShark发送的数据,我会得到字符串“hej\345\344\366”或十六进制“68656a20e5e4f6”,这是什么编码

还可以尝试将ed编码为“hej 1+1=2”

试试看,ed UTF-7与åäö配合得很好,但与+配合得不好,因此它不是UTF-7,代码集看起来像或(无法区分哪个,因为显示的符号对两者都是通用的)

  • å=0xE5=0345
  • ä=0xE4=0344
  • ö=0xF6=0366
该规范可能已经过时,您只需要传输具有高阶(第8位)位集的字符,就像其他NFS服务器一样


区分ISO 8859-1和8859-15 这两个代码集之间的差异及其Unicode字符映射在此输出中显示(源自定义8859-1和8859-15中字符的Unicode等价物的文件之间的
diff

ISO 8859-1
  • A4 U+00A4货币符号
  • A6 U+00A6断条
  • A8U+00A8分离
  • B4 U+00B4锐重音
  • B8U+00B8Cedilla
  • BC U+00BC普通分数四分之一
  • BD U+00BD普通分数一半
  • BE U+00BE粗俗分数四分之三
ISO 8859-15
  • A4 U+20AC欧元符号
  • A6 U+0160带CARON的拉丁文大写字母S
  • 带CARON的A8 U+0161拉丁文小写字母S
  • B4 U+017D带CARON的拉丁文大写字母Z
  • B8 U+017E带CARON的拉丁文小写字母Z
  • BC U+0152拉丁文大写连字OE
  • BD U+0153拉丁小连字OE
  • BE U+0178带分音符的拉丁文大写字母Y

如果我记得的话,NFS服务器对编码的处理非常糟糕

文件名中任何字符的字节都不能为0或0x2F,最大长度为255字节


因此,UTF-8编码的文件名很受欢迎。

是否有一些字符可以为我的文件夹命名,这样我就可以知道它是ISO 8859-1还是8859-15?