[解決済み] Pythonはコンピュータの中でどのように文字列を保存しているのですか?
質問内容
Pythonに詳しい方は、Dive Into Python 3を読んだことがある方が多いと思います。4.3章で、こんなことが書いてあります。
Python 3 では、すべての文字列は Unicode 文字のシーケンスです。UTF-8でエンコードされたPythonの文字列や、CP-1252でエンコードされたPythonの文字列というのは存在しません。"この文字列は UTF-8 ですか?"という質問は無効です。
なんとなく意味はわかります。文字列=Unicodeセットの文字であり、Pythonは異なるエンコード方法に従って文字をエンコードする手助けをします。しかし、Pythonの文字はとにかくコンピュータの中でバイトとして保存されているのでしょうか?例えば、s = 'strings'で、sはきっとバイト列'0100100101...'とかとしてコンピュータに格納されているのでしょう。では、ここで使われているエンコード方法 - Python の "default" エンコード方法とは何でしょうか?
ありがとうございます。
解決方法は?
Python 3 は、以下のものを区別しています。 テキスト とバイナリ データ . テキストは Unicode であることが保証されていますが、私が見た限りでは、特定のエンコーディングは指定されていません。ですから、UTF-8であったり、UTF-16であったり、UTF-32¹であったりするわけですが、そのことに気づくことはないでしょう。
ここでの要点は 気にする必要はない。テキストを扱いたいのであれば、テキスト文字列を使い、コードポイント(これは単一の Unicode 文字の番号で、内部 UTF とは独立したものです - コードポイントはいくつかの小さなコードに整理されている場合があります)でアクセスします。
単位
). もし、バイトが必要なら
b""
で、バイト単位でアクセスします。また、特定のエンコーディングでバイト列の文字列を持ちたい場合は
.encode()
.
¹ PDP-10 で Python を実装するような非常識な人がいれば、UTF-9 でもよい。
関連
-
[解決済み】Python regex AttributeError: 'NoneType' オブジェクトに 'group' 属性がない。
-
[解決済み】Python: SyntaxError: キーワードは式になり得ない
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] JavaScriptで複数行の文字列を作成する
-
[解決済み] Pythonで文字列の部分文字列を取得するにはどうすればよいですか?
-
[解決済み】JavaScriptで文字列の出現箇所をすべて置換する方法
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】Pythonに三項条件演算子はありますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ピロウズ画像色処理の具体的な活用方法
-
Python 人工知能 人間学習 描画 機械学習モデル作成
-
Python interpreted model libraryによる機械学習モデル出力の可視化 Shap
-
任意波形を生成してtxtで保存するためのPython実装
-
Pythonショートビデオクローラーチュートリアル
-
[解決済み】numpyの配列連結。"ValueError:すべての入力配列は同じ次元数でなければならない"
-
[解決済み】 AttributeError: モジュール 'matplotlib' には属性 'plot' がない。
-
[解決済み] 'DataFrame' オブジェクトに 'sort' 属性がない
-
[解決済み】syntaxError: 'continue' がループ内で適切に使用されていない
-
[解決済み】ValueError: pickleプロトコルがサポートされていません。3、python2 pickleはpython3 pickleでダンプしたファイルを読み込むことができない?