自己Python--の文字エンコーディングと文字列

#!/usr/bin/env python3
 # -*- coding: utf-8 -*- 
//在python文件开头加入这两行,指定字符编码

 

ASCII:

最初の127の文字は、大文字のAをコードするように、小文字、数字、いくつかのシンボルは、コーディングテーブルをASCIIコードと呼ばれているコンピュータ、でエンコードされ小文字Zコードが122であり、65です。

ユニコード:

文字を表現するために2つのバイトを使用します。ASCIIバイトを使用しています

中国に対処するには、バイトが十分ではありません明らかにされ、あなたは少なくとも2つのバイトを必要とし、ASCIIはエンコーディングと競合することはできませんので、中国は2312を中国語にコンパイルするために使用さ、コーディング開発しました。

日本はShift_JISで日本に割り当てられ、韓国の韓国では、ゴミ問題を持っていないので、したがって、Unicodeのすべての言語は、セット符号化方式に統一され、EUC-KRの年に割り当てられました

 

UTF-8:

Unicodeエンコーディングに統一、ゴミ問題は消えます。あなたは、本質的に記述した場合、すべてのテキストが英語であるが、その後、ASCIIエンコーディングよりもUnicodeエンコーディングを使用すると、ストレージおよび輸送上の二重の収納スペースは非常に価値があるだろうが必要です。したがって、保護の精神、及び「可変長符号」UTF-8エンコーディングにUnicodeエンコードの出現です。

UTF-8でエンコードされた数値の異なるサイズのUnicode文字に応じては、1-6バイトに符号化され、一般的に使用される文字は、典型的には、3バイトは、まれ文字がされるバイト文字に符号化されます4-6バイトに符号化されました。テキストは英語の文字の多くが含まれて転送したい場合は、使用UTF-8エンコーディングは、スペースを節約することができるようになります。

コンピュータのメモリでは、統一使用Unicodeエンコーディング

  1. ハードディスクが必要なときに記憶または送信する必要がある場合には、UTF-8エンコーディングに変換されます。
  2. メモ帳編集に時間が、ファイルからUTF-8文字の読み取り、編集が完了した後、メモリにUnicode文字に変換し、時間保存し、ファイルを保存するためにはUnicode UTF-8に変換され、
  3. Webの閲覧、サーバが動的にUnicodeのUTF-8にコンテンツを生成し、ブラウザに送信されます

 

 

  1. 複数言語のPythonサポート(保存するメモリ内のUnicodeは、文字列です)

単一の文字を符号化するために、Pythonは(ORDを提供する))(チャーを用いて、整数で表される文字を取得する文字コードは、文字に対応する変換

>>>ord("A) 
65 
>>>char(65) 
'A'

2. Pythonの型文字列strは、メモリ内の表現Unicodeに、文字が複数のバイトに対応します。あなたがネットワーク経由で転送したり、ディスクに保存したい場合は、バイトバイトにSTRになる必要があります。

Bプレフィックスは、単一または二重引用符を表すとPython用のデータ・タイプのバイトが使用されてもよいです

x=b'ABC' y='ABC'
//x与y显示的内容一样,但是x中每个字符之占一个字节,而y占用两个字节

使用エンコード()メソッド:STRバイト変換しました

STRにバイト:デコード()メソッドを使用して

>>>'ABC'.encode('ascii') 
b'ABC' 

>>>b'ABC'.decode('ascii') 
'ABC'
  1. strの平易な英語はASCIIバイトとして符号化されてもよい、STR含む中国はUTF-8バイトに符号化することができます。strが中国のエンコーディングのスコープは、スコープのASCIIエンコーディングを超えているので、中国は、ASCIIでエンコードすることはできません含まれている、Pythonは文句を言うでしょう。
  2. バイトで、バイトは、ASCII文字、\ X ##ディスプレイの使用として表示することはできません。

どのように多くの文字は、計算列strに含まれています。コールLEN()メソッド

UTF-8エンコードされ、通常は3つのバイトを占有した後、中国語の文字

>>> len('ABC') 
3

 

 

フォーマット:C言語での1として、唯一%で実現します

、それはパラメータで置き換えられます2.format()は、{0}、{1}文字列内の順次のプレースホルダを通過しました

>>> 'Hello, %s' % 'world' 
'Hello, world'
>>> 'Hi, %s, you have $%d.' % ('Michael', 1000000) 
'Hi, Michael, you have $1000000.'

通常の文字の内側%文字列はどのように行うには?今度は、%%で百分の一を表すために、エスケープする必要があります。

>>> 'growth rate:

%d %%' % 7 'growth rate: 7 %'

公開された40元の記事 ウォンの賞賛4 ビュー858

おすすめ

転載: blog.csdn.net/weixin_44919969/article/details/103948415