V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
YGHMXFAL
V2EX  ›  Linux

终端中一个乱码问题

  •  
  •   YGHMXFAL · 3 天前 · 642 次点击

    第[1]步:

    find 枚举 Dir 下的所有目录,发现某一个目录的名称中包含一个[FullWidthComma]字符,码点是[U+FF0C]

    find Dir -type d &>List

    cat List

    此时一切正常,FullWidthComma 正常显示,没有乱码

    第[2]步:

    echo $'\U0000FF0C'

    此时 FullWidthComma 乱码了

    注[1]:$'string'在 bash 中是一种特殊转义序列,此处使用它来根据码点打印出字符

    注[2]:echo 有 2 个版本,一个是 bash 的 buildin 命令,一个独立二进制版本,均乱码

    我的问题:

    既然第[1]步中显示正常,那应该不是我缺字体/字体中缺字符吧?而且 locales 环境也是从来没变过,请问为什么会一个正常一个乱码呢?

    第 1 条附言  ·  2 天前

    嗯...看起来是[windows+tabby+git-bash]这个组合当中的某一个环节出了问题...我再继续摸索...

    在debian VPS上完全正常...

    5 条回复    2023-09-21 13:33:01 +08:00
    ysc3839
        1
    ysc3839  
       3 天前 via Android
    1 大概是原样输出,在文件系统中可能就是 UTF-8 bytes 了。
    而 2 你传给 echo 的不是 UTF-8 bytes ,就得根据当前 locale 编码成对应 bytes 再输出,可能是因为 locale 设置问题。
    huntagain2008
        2
    huntagain2008  
       3 天前
    小白我建了名字为“,”的文件夹,照你的步骤都操作了一遍,都是正常显示。
    你的 locale 配置是否都是 zh_CN.UTF-8 ?
    YGHMXFAL
        3
    YGHMXFAL  
    OP
       2 天前
    @ysc3839 #1 我也觉得 locales 的可能性比较大


    @huntagain2008 #2 肯定是,LC_ALL 和 LANG 我都确认了,另外请问你是什么字体下显示呢(虽然我觉得不太像字体问题)
    billlee
        4
    billlee  
       2 天前 via Android
    我觉得是终端模拟器的问题,echo 应该不涉及编码转换。
    huntagain2008
        5
    huntagain2008  
       22 小时 44 分钟前
    字体是默认的,不知道是啥,可能是 DejaVu Sans Mono Book 。
    TERM:xterm-256color
    xfce4-terminal 0.8.9.1
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3557 人在线   最高记录 5930   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 04:17 · PVG 12:17 · LAX 21:17 · JFK 00:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.