第[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 环境也是从来没变过,请问为什么会一个正常一个乱码呢?
嗯...看起来是[windows+tabby+git-bash]这个组合当中的某一个环节出了问题...我再继续摸索...
在debian VPS上完全正常...
1
ysc3839 2023-09-19 05:38:26 +08:00 via Android
1 大概是原样输出,在文件系统中可能就是 UTF-8 bytes 了。
而 2 你传给 echo 的不是 UTF-8 bytes ,就得根据当前 locale 编码成对应 bytes 再输出,可能是因为 locale 设置问题。 |
2
huntagain2008 2023-09-19 11:25:02 +08:00
小白我建了名字为“,”的文件夹,照你的步骤都操作了一遍,都是正常显示。
你的 locale 配置是否都是 zh_CN.UTF-8 ? |
3
YGHMXFAL OP @ysc3839 #1 我也觉得 locales 的可能性比较大
@huntagain2008 #2 肯定是,LC_ALL 和 LANG 我都确认了,另外请问你是什么字体下显示呢(虽然我觉得不太像字体问题) |
4
billlee 2023-09-19 14:56:55 +08:00 via Android
我觉得是终端模拟器的问题,echo 应该不涉及编码转换。
|
5
huntagain2008 2023-09-21 13:33:01 +08:00
字体是默认的,不知道是啥,可能是 DejaVu Sans Mono Book 。
TERM:xterm-256color xfce4-terminal 0.8.9.1 |