首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我的bashrc包含奇怪的字符(如果是-fü/..bash_aliases,那么。ü/..bash_aliases fi)

我的bashrc包含奇怪的字符(如果是-fü/..bash_aliases,那么。ü/..bash_aliases fi)
EN

Stack Overflow用户
提问于 2021-05-17 07:56:45
回答 1查看 188关注 0票数 0

在GCP计算中,Linux意外地做了cat文件,而不是filebeat.yaml。

在那之后,我的bashrc包含下面的字符,如果我键入'~‘bash正在打印'ü’,需要帮助解决这个问题。

代码语言:javascript
复制
if Ä -f ü/.bash_aliases Å; then
    . ü/.bash_aliases
fi
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-17 08:47:41

这看起来像是您的终端被意外地配置为遗留的ISO-646-SE或一个变体。您的文件可能很好;只是您的终端根据1980年代的方案来映射显示字符。

快速十六进制转储应该验证文件中的字符实际上是正确的。这是一个你应该看到的例子。

代码语言:javascript
复制
bash$ echo '[\]' | xxd
00000000: 5b5c 5d0a                                [\].

即使字符显示为and,如果您看到十六进制代码5B、5C和5D,则它们是正确的。(如果您没有xxd,请尝试hexdumpod -t x1。)

很可能

代码语言:javascript
复制
bash$ tput reset

可以将终端设置为正常设置。也许stty sane也能工作(但根据我的经验,不太可能)。否则,试着登出并返回。

回到ASCII是镇上唯一的游戏,但美国(或实际上任何)硬件被出口到字符库不足的地方,本地供应商将替换终端中的ROM芯片,以重新映射一些稍不常见的字符代码,以显示为丢失的本地符号。随着时间的推移,这变得标准化了;ISO-646标准被更新以记录这些本地重写。(链接的维基百科页面有许多包含详细信息的表。)

最终,8位字符集成为规范,然后大多数地区切换到拉丁语1或其他一些合适的字符集,不再需要这种黑客。然而,即使在1990年代初,这种情况仍然相当普遍。在21世纪初,Unicode开始接管,所以现在这似乎是一种荒谬的安排。

我猜您在cat上遇到的文件包含一些控制字符,这些字符指示您的终端切换到这个遗留字符集。这并不是完全不常见的(虽然通常发生在我身上,它切换到一些“图形”字符集,其中一些字符显示方框绘制字符或数学符号)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67565894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档