linux - 不同的Python在不同的SSH登录中表现如何?

标签 linux character-encoding ntfs python-unicode

我在CentOS中挂载了一些NTFS磁盘,其中一些文件名是中文。我通过Mac的iTerm登录Centos,但是在我的办公室Mac中,ls显示正确的中文文件名,但在家庭Mac中,ls只显示类似??????????????????的内容,最重要的是,当我在家庭Mac中启动我的Python脚本时,它无法处理这些文件(UnicodeDecodeError),但在办公室Mac中启动时,它运行良好。

为什么会发生这种情况?如何解决?

两台不同的Mac除了一些ENV设置外,python脚本是相同的,磁盘也相同,为什么在家用Mac上启动时出现异常?还与一些ENV有关?

最佳答案

好的,我得到答案了。即使在目标计算机上设置了环境,ssh 登录也不接受目标计算机上的 LC_ALL。因此,当运行Python脚本时,LC_ALL值不会发送到Python脚本,并且无法处理这些中文命名文件。

从 C 角度来看,main() 函数通常有 2 个参数:

int main(int argc, char *argv[])

但实际上,还有另一种:

int main(int argc, char *argv[], char *env[])

突然间,我找到了答案。

为了避免再次发生相同的问题,您可以在启动脚本中添加export或设置sshd_config

关于linux - 不同的Python在不同的SSH登录中表现如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32461847/

相关文章:

windows - 是否有用于在 Windows 中测试各种文件 I/O 的应用程序?

c++ - ": No such file or directory"正在执行shell文件

linux - nasm 无法识别字符串常量中的换行符

PHP DOMDocument nodeValue 转储文字 UTF-8 字符而不是编码

php - 智能引号无法正确转换为 UTF8

winapi - 什么是 "transactional"文件操作?

linux - 免费/开放 h.264 视频解码库? (非 GPL)

linux - 使用环境变量作为完整路径的一部分

java - 使用 Java、Hibernate 和 JPA 将 MySQL latin1 转换为 UTF-8

c# - 基于 SHA-1 的目录结构和 NTFS 限制?