默认字符编码是什么?


8

我本人不知道这个问题的实质范围(例如,据我所知,根据我的任务,可能会有多个问题)。

特别是,我对使用哪种字符串来命名系统上的文件和文件夹感兴趣。

我还对bash或python脚本默认情况下如何表示字符串感兴趣。


这是一个很好的问题,尤其是如果您是从Windows转换并为某些版本控制系统贡献源代码的话。切换到Ubuntu后,您可能会突然遇到无法读取的特殊字符,因为Windows通常不使用UTF-8。
Bananeweizen

Answers:


3
  • 文件系统上文件名的编码是utf-8。
  • Bash以字节为单位思考,而不是带编码的字符串知识。因此没有默认编码。gnome-terminal的默认编码为utf-8
  • Python的默认编码为ascii

Python 3(我认为吗?)默认情况下更改为unicode字符串。
Broam 2010年

Python 3的str()类型是内部使用UCS-2或UCS-4编码的unicode对象。应用程序/库开发人员将确定如何从例如文件和stdin中读取或写入数据,其中utf-8是标准的(例如print(some_str)将打印utf-8表示形式)。
丹尼斯·考斯玛克

Python 3将采用Ruby 1.9之类的unicode,而Ruby 1.8及以下之类的Python 2和更低版本均基于ascii,并且可与所有字符集一起使用,但是他们关于unicode字符串的字符计数的想法是错误的。(通常不是问题)
拉尔夫(Ralf

3
gnome-terminal不默认为utf-8;它仅使用您的语言环境设置为的内容。(正如我最近发现的困难方法一样。)
弗巴约(Frabjous

1
@DennisKaarsemaker不,Python3不仅将编码留给开发人员,而且使用默认的UTF-8。例如,默认情况下,Stdin和-out使用环境的编码!
罗伯特·西默

7

默认字符编码为UTF-8(Unicode),尽管几乎所有文件名(默认安装中很可能全部为文件名)都是常规ASCII字符,大多数编码都通用。

我不知道“ bash或python脚本代表多少个字符串”是什么意思。您可以在Ubuntu上的bash脚本中使用Unicode字符,但是通常使用bash脚本,您可以调用其他程序,而这些其他程序是否可以处理它们则是另一回事。当然,使用Python也可以这样做,尽管您需要熟悉与之相关的软件包和设置。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.