发布
社区首页 >问答首页 >Ubuntu中的UTF8支持

Ubuntu中的UTF8支持
EN

Stack Overflow用户
提问于 2015-06-12 21:21:56
回答 2查看 1.2K关注 0票数 0

在Ubuntu上运行一些测试时,我注意到像gedit或终端这样的工具使用ascii编码创建文件

代码语言:javascript
代码运行次数:0
复制
$ echo 'hello world' > test.txt
$ file --mime test.txt 
test.txt: text/plain; charset=us-ascii

我的语言环境是utf8,但Ubuntu似乎没有使用它

代码语言:javascript
代码运行次数:0
复制
$ locale
LANG=en_US.UTF-8
LANGUAGE=en_US
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC=nl_NL.UTF-8
LC_TIME=nl_NL.UTF-8
LC_COLLATE="en_US.UTF-8"
LC_MONETARY=nl_NL.UTF-8
LC_MESSAGES="en_US.UTF-8"
LC_PAPER=nl_NL.UTF-8
LC_NAME=nl_NL.UTF-8
LC_ADDRESS=nl_NL.UTF-8
LC_TELEPHONE=nl_NL.UTF-8
LC_MEASUREMENT=nl_NL.UTF-8
LC_IDENTIFICATION=nl_NL.UTF-8
LC_ALL=

这些文件不应该用utf8创建吗?根据我的设置/区域设置?

我不明白us-ascii字符编码是从哪里来的。有没有办法让Ubuntu/Linux使用utf8?

例如,我确实做了一些区域设置的事情。

代码语言:javascript
代码运行次数:0
复制
sudo locale-gen en_US en_US.UTF-8
dpkg-reconfigure locales
EN

回答 2

Stack Overflow用户

发布于 2015-06-12 21:27:47

纯文本文件在任何地方都没有编码。没有地方存储关于文件如何编码的元数据。创建文件时,会根据您当前的区域设置创建该文件。当您使用file测试它的类型时,file 会根据可用的指示器来猜测。因为文件的内容是纯ASCII,所以它猜测ASCII。完全包含ASCII字符的文件在UTF-8和ASCII中是相同的(以及大多数其他编码,它们都是ASCII兼容的)。

票数 3
EN

Stack Overflow用户

发布于 2015-06-12 21:27:30

UTF-8是ASCII的超集。由于文件中只包含ASCII字符,因此它既是ASCII字符又是UTF-8字符。file将其报告为ASCII码。将不在ASCII中的字符放入其中,它将报告其他情况。

代码语言:javascript
代码运行次数:0
复制
[ quentin ][ quentin@englishbreakfast ] %  echo asd > file
[ ~ ]
[ quentin ][ quentin@englishbreakfast ] %  file file
file: ASCII text
[ ~ ]
[ quentin ][ quentin@englishbreakfast ] %  echo \¨^ø> file
[ ~ ]
[ quentin ][ quentin@englishbreakfast ] %  file file
file: UTF-8 Unicode text
[ ~ ]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30804207

复制
相关文章

相似问题

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