在Linux服务器上有一些混淆的utf8?

时间:2016-10-01 04:11:07

标签: linux utf-8 locale

关于字符集我总是有疑问。

本地(Mac OS)

bash-3.2$ 你好
bash: 你好: command not found
bash-3.2$ locale
LANG="en_US.UTF-8"

Linux服务器(ssh)

root@hg:~# 你好
-bash: $'\344\275\240\345\245\275': command not found
root@hg:~# locale
LANG=en_US.utf8

问题1

为什么两者都是utf8,在服务器你好中更改为\344\275\240\345\245\275但更改为你好

问题2

剂量\344\275\240\345\245\275代表utf-8的{​​{1}}编码?它应该是你好吗?有不同的\xE4\xBD\xA0\xE5\xA5\xBD吗? enter image description here

1 个答案:

答案 0 :(得分:1)

  

为什么两者都是utf8,在服务器中你改为\ 344 \ 275 \ 240 \ 345 \ 245 \ 275但是文字好吗?

显示来自你的shell。在本地,您正在使用zsh,它只会在错误消息中复制您的输入。

远程地,您正在使用bash,即使您错过了正确的字体,也会尝试确保显示该消息,因此它会将每个字节转换为八进制表示。

  

\ 344 \ 275 \ 240 \ 345 \ 245 \ 275是否代表你的utf-8编码?它应该是\ xE4 \ xBD \ xA0 \ xE5 \ xA5 \ xBD吗?是否有不同的utf-8?

第一个是八进制表示。八进制344是十六进制e4。所有字节都匹配,它只是一种不同的显示格式。