setdefaulttencoding関数の使い方の詳しい説明

高洛峰
リリース: 2016-10-17 16:14:41
オリジナル
1368 人が閲覧しました

sys.getdefaultencoding() は、デフォルトの文字列エンコード形式を設定します。Python でエンコードおよびデコードするときにエンコード方法を指定しない場合、Python はdefaultencoding を使用します。

python2.x のデフォルトのエンコーディングは ascii です。これが、ほとんどの Python エンコーディング エラー「UnicodeDecodeError: 'ascii' codec can't decode byte...」の原因です。同様の機能を持つ

#coding:utf-8 は、ソース コードのエンコーディングを定義するために使用されます。これが定義されていない場合、ソース コードに中国語の文字列を含めることはできません。

注: setdefaultencoding は python2 以降は破棄されます。 .7 であるため、python3 では使用できません。ここでのインポート ステートメントは実際には sys の最初のインポート ステートメントではないため、最初に sys モジュールをリロードします。つまり、これは実際には sys モジュールの 2 番目または 3 番目のインポートである可能性があります。は sys への単なる参照であり、リロードすることしかできません。


では、なぜリロードする必要があるのに、関数を直接参照して呼び出すことができないのでしょうか? setdefaultencoding 関数はシステムによって呼び出された後に削除されるため、インポートを通じて参照されるときには存在しません。そのため、setdefaultencoding が使用可能になり、インタープリターの現在の文字エンコーディングが使用可能になるように、sys モジュールを一度再ロードする必要があります。コードで変更されました。

Python インストール ディレクトリの Lib フォルダーに、site.py というファイルがあります。その中に main() --> setencoding()-->sys.setdefaultencoding(encoding) があります。 site .pyはPythonインタプリタを起動するたびに自動的に読み込まれるので、main関数は毎回実行され、setdefaultencoding関数は出たらすぐに削除されます。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート