デフォルトの文字エンコーディングは何ですか?


8

この質問が実際にどの程度深いかは、私にはわかりません(たとえば、自分の仕事によっては、いくつか質問があるかもしれません)。

特に、システム上のファイルやフォルダに名前を付けるためにどのような文字列が使用されるかに興味があります。

また、bashまたはpythonスクリプトのデフォルトで文字列がどのように表現されるかに興味があります。


これは、特にWindowsから変換して、ソースコードをバージョン管理システムに提供する場合は、良い質問です。Ubuntuに切り替えると、Windowsは通常UTF-8を使用しないため、突然特殊文字が読めなくなる場合があります。
Bananeweizen

回答:


3
  • ファイルシステム上のファイル名のエンコーディングはutf-8です。
  • Bashは、strings-with-encoding-knowledgeではなく、バイト単位で考えます。したがって、デフォルトのエンコーディングはありません。gnome-terminalのデフォルトのエンコーディングはutf-8です
  • Pythonのデフォルトのエンコーディングはasciiです。

Python 3(と思いますか?)はデフォルトでUnicode文字列に変更されます。
Broam

Python 3のstr()型は、UCS-2またはUCS-4エンコードのUnicodeオブジェクトです。ファイルやstdinなどからデータを読み書きする方法は、アプリケーション/ライブラリの開発者が決定し、utf-8が標準です(たとえば、print(some_str)はutf-8表現を印刷します)。
Dennis Kaarsemaker 2010

Python 3は、Ruby 1.9のようなユニコードに移行します。Ruby1.8以下のようなPython 2以下は、ASCIIベースで、すべての文字セットで機能しますが、ユニコード文字列の文字数に関する考え方は間違っています。(通常は問題ありません)
Ralf

3
gnome-terminalのデフォルトはutf-8ではありません。ロケールが設定されているものを使用するだけです。(私が最近困難な方法を発見したように。)
Frabjous

1
@DennisKaarsemakerいいえ、Python3はエンコードを開発者だけに任せず、デフォルトのUTF-8を使用します。たとえば、stdinと-outは、デフォルトで環境のエンコーディングを使用します!
Robert Siemer 2014年

7

デフォルトの文字エンコーディングはUTF-8(Unicode)ですが、ほとんどすべてのファイル名(デフォルトのインストールではおそらくすべて)は通常のASCII文字であり、ほとんどのエンコーディングに共通です。

「bashまたはpythonスクリプトで表現される文字列の数」の意味がわかりません。UbuntuのbashスクリプトではUnicode文字を使用できますが、通常bashスクリプトでは他のプログラムを呼び出します。他のプログラムがそれらを処理するかどうかは別の問題です。Pythonを使用してこれを行うことは確かに可能ですが、それに関連するパッケージと設定を理解する必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.