Bash:无法使用unicode字符

时间:2018-04-23 17:11:44

标签: bash git fonts

我正在尝试签出一个git repo(this),这需要创建一个带有unicode字符的文件夹(名称是uni¢d€),其中缺少的字符(我不知道如何在这里渲染)是Hwair gothic character。在我的工作站上,它运行正常,但是当我尝试在服务器上执行此操作时(RedHatEnterpriseServer,我没有sudo权限),我收到错误

fatal: cannot create directory at 'python/ycm/tests/testdata/uni¢d€': Permission denied

作为旁注,我试图手动创建文件夹,而hwair字符是唯一一个产生问题的字符,意思是可以成功创建文件夹uni¢d€

两个系统上的LANG变量都设置为en_US.UTF-8。我试图找到我的工作站字体和服务器字体之间的差异。 Grepping'hwair',我在我的工作站上发现了一个服务器上缺少的字体,所以我在服务器上复制了~/.fonts中的字体文件夹,然后运行fc-cache,但这不起作用。

Google-ing hwair并在我的工作站和服务器上点击这里,我发现'hwair'字符采用Code2001字体,我认为应该安装在两个系统上,因为两个系统都有文件/etc/fonts/conf.d/69-unifont.conf,它们是相同的,并且包含行

<family>Code2001</family> <!-- plane1 and beyond -->

我从来没有真正处理过这种精细级别的字体,所以我不确定这是否可以通过在本地添加某些字体来解决(也许是系统禁止这种特殊字体)。我甚至不知道将字体文件复制到~/.fonts/并运行fc-cache是否足够,或者是否还有更多内容。

所以我想问题是:

  1. 问题是否与服务器上的字体丢失有关?
  2. 如果是,我该如何添加缺少的字体?
  3. 如果不是,是否与我无法解决的问题有关(也许它需要sudo权限)?
  4. 编辑:无法创建的文件夹是git存储库的一部分。克隆存储库时(或者您尝试签出主分支时)会出现错误。我不认为权限存在问题,否则它也会在我的工作站上失败('host'文件夹的权限相同)。此外,尝试mkdir $( printf 'uni¢\xF0\x90\x8D\x88d€' )也不起作用。 bash似乎确实正确解释了unicode编码,因为当打印'无法创建...'时,文件夹的名称显示为hwair符号。

    Edit2:如果你认为这个问题存在一些缺陷,请添加评论,而不仅仅是投票结束。如果需要,我很乐意改变/编辑/改进。

1 个答案:

答案 0 :(得分:3)

我遇到了完全相同的问题!

对于某些人来说-我不知道-原因是无法在Hwair character中提到某些文件系统中的文件名中包含that other guy

因此,作为一种解决方法,我建议您使用以下内容查看可用的文件系统:

df -Th

,然后例如使用符号链接到使用 ext4 的文件系统。

仅供参考:不适用于我的文件系统的类型为 nfs4