質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Unicode

Unicodeはエンコーディングの標準規格です。1つの文字コード体系で多国語の表現を可能にすることを目指して作られています。

UTF-8

UTF-8は8ビット符号単位の文字符号化形式及び文字符号化スキームです。データ交換方式、ファイル形式としては、一般的にUTF-8が使われる傾向があります。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

499閲覧

エンコードと二進数について

Light-_-

総合スコア31

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Unicode

Unicodeはエンコーディングの標準規格です。1つの文字コード体系で多国語の表現を可能にすることを目指して作られています。

UTF-8

UTF-8は8ビット符号単位の文字符号化形式及び文字符号化スキームです。データ交換方式、ファイル形式としては、一般的にUTF-8が使われる傾向があります。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/08/12 08:59

編集2019/08/12 09:00

今pythonでUnicodeの勉強をしているのですが、エンコードするときにバイトとして出てくる結果が

py

1b’\xe2\x98\x83’

と出てきました。バイトって8ビットあたりのもので、ビットとは0か1をコンピューターに入れていくって書いているんですけど、これだとコンピューターは理解できるのでしょうか?バイトに直すって聞いた時に二進数化するのかなと思ってたんですけどどうなんでしょうか。教えてくださると幸いです。ちなみにutf-8です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

cateye

2019/08/12 09:16 編集

何が分からないのか?・・・UTF_8"e29883"はSNOWMANだと思いますが・・・ \xe2\x98\x83は、文字コードです。コンピューターは理解 ・・・ではなく、その文字のエンコードされた値を返すだけです。 参考:https://www.unicd.net/char/2603
Light-_-

2019/08/12 09:16

ではコンピューターに理解させるためにエンコードをするわけではないということですか?
cateye

2019/08/12 09:25

エンコードは、人間のためです。
Light-_-

2019/08/12 09:29

ありがとうございます!
Light-_-

2019/08/12 09:32

では外部からのデータをデコーティングするときにはコンピューターが人間のわからないような文字で出すのではなくて、人間がわかるやつに変換した上で、バイトとして私達に見せてるってことですか?
guest

回答2

0

BAが出てますが、例えば
usr ~/Project/test % cat aa
これは文字です。

と言うような文字が書かれたファイルが有った時、実際の内容は以下のようになります。
usr ~/Project/test % od -t x1 aa
0000000 e3 81 93 e3 82 8c e3 81 af e6 96 87 e5 ad 97 e3
0000020 81 a7 e3 81 99 e3 80 82 0a 0a
0000032
“e3 81 93”が'こ'の文字コード(UTF-8)です。以下同様・・・
これをe29883とe38080に書き換えるとSNOWMAN+空白になります。
イメージ説明

投稿2019/08/12 14:00

cateye

総合スコア6851

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Light-_-

2019/08/13 04:07

補足説明ありがとうございます。
guest

0

ベストアンサー

\xe2というのはバイト値の表現です
11100010
と言う2進数を16進数表記にしたものです。

他も同様

投稿2019/08/12 09:13

y_waiwai

総合スコア87774

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Light-_-

2019/08/12 09:15

16進数ってコンピューターは理解できるのでしょうか?
y_waiwai

2019/08/12 09:21

2進数を人間が理解できるように表記を替えたものが16進数です まあ、もともと2進数のものをそう表示してるだけなので、コンピュータはそれを2進数で読むので理解できてますね まあ、10進数もそうですが、人間が見やすいようにもともとの2進数を(2進数に)変換して出してるだけなので、心配しなくてもコンピュータは理解しますよ
cateye

2019/08/12 09:23 編集

10進も16進も人間が見て見やすいようにしているだけで、実際はバイナリ(0:OFF/1:ONの電気信号だけです)で記憶します。
Light-_-

2019/08/12 09:23

ありがとうございます。
Light-_-

2019/08/12 09:45

では外部からのデータをデコーティングするときにはコンピューターが人間のわからないような文字で出すのではなくて、人間がわかるやつに変換した上で、バイトとして私達に見せてるってことですか?
y_waiwai

2019/08/12 10:07

コンピュータは、文字、という認識はしません。 ただ、バイト列の b’\xe2\x98\x83’ を出してるだけです それを、ディスプレイ上で、文字という形に変換して表示させてます。 人間が勝手にそれを文字としてみてるだけー、、ということですねー まあ、動画、とか音楽、とかも同様に、コンピュータはバイト列としか見てないですね。 そのデータを、人間の都合でスピーカに出したり画像に出したりするようにプログラムを組んでるだけで。
Light-_-

2019/08/12 10:21

ありがとうございます!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問