Ubuntu 使用“ls”命令显示错误的泰语

Ubuntu 使用“ls”命令显示错误的泰语

Ubuntu 错误地显示泰语文件名。

图像

$ locale
LANG=th_TH.UTF-8 
LANGUAGE= 
LC_CTYPE="th_TH.UTF-8" 
LC_NUMERIC="th_TH.UTF-8" 
LC_TIME="th_TH.UTF-8" 
LC_COLLATE="th_TH.UTF-8" 
LC_MONETARY="th_TH.UTF-8" 
LC_MESSAGES="th_TH.UTF-8" 
LC_PAPER="th_TH.UTF-8" 
LC_NAME="th_TH.UTF-8" 
LC_ADDRESS="th_TH.UTF-8" 
LC_TELEPHONE="th_TH.UTF-8" 
LC_MEASUREMENT="th_TH.UTF-8" 
LC_IDENTIFICATION="th_TH.UTF-8" 
LC_ALL=  

$ locale -a
C
C.UTF-8 
en_US.utf8 
POSIX 
th_TH.utf8

答案1

  1. 正如其中之一所建议的那样这个问题的回答:

在支持 UTF-8 的终端仿真器中,您可以使用 luit 命令以不同的语言环境运行子 shell(或其他程序)。指示字符集的语言环境设置是 LC_CTYPE。

LC_CTYPE=ru_RU.KOI8-R luit ls   # run one command
LC_CTYPE=ru_RU.KOI8-R luit      # start a shell (type Ctrl+D or exit to return to the parent shell)
  1. 您可以尝试设置您的腻子的会话: PuTTY Configuration Session Window Translation Remote character set: UTF-8

    putty 的编码设置

  2. 这个答案建议改变Connection> Data>而Terminal-type string不是puttyxterm

  3. 建议更改您的语言环境在本指南中

    sudo update-locale LANG=<name of locale here>
    
    user@ubuntu:~/ $ cat /etc/default/locale 
    LANG=en_US.UTF-8
    user@ubuntu:~/ $ sudo update-locale LANG=uk_UA.utf8
    [sudo] password for user: 
    user@ubuntu:~/ $ cat /etc/default/locale 
    LANG=uk_UA.utf8
    

在你的情况下你可以使用th_TH.UTF-8

xterm在我的例子中,即使使用参数,putty 也能正确显示泰语编码Terminal-type string
Putty 的泰国符号

Windows 中的区域设置:

非 Unicode 程序的当前语言:英语(美国)

  1. 尝试 putty 的备择方案

更新:我们尝试创建一个以泰语编码命名的文件,并且它按预期显示 - 以泰语编码。但是以泰语编码命名的旧文件显示不正确。因此我们认为问题可能出在 ftp 服务器如何处理泰语编码的文件上。

  1. 记下哪些程序或服务将更改写入磁盘,以及它如何使用您的编码对文件名称中的符号进行编码。

相关内容