アプリ版:「スタンプのみでお礼する」機能のリリースについて

pythonのデフォルトエンコーディングは
asciiコードですよね?

まず mod_wsgiモジュールを用いてapache上で実行したいと思っています。
そこで通常はマジックコメントで #cofing: utf-8
とかかなければ日本語などのマルチバイトは使用できませんよね?

それを
http://d.hatena.ne.jp/ama-ch/20080610/1213073848
上記ページを参考に
import sys
sys.setdefaultencofing("utf-8");
とかいて、やればれスクリプトを記述したファイルの冒頭で
# coding: utf-8
のマジックコメントを書かなくてもよくなるのかなとおもったのですが
そうはいきませんでした。

私のは考えはデフォルトの文字コードが utf-8なら
マジックコメントを記述しなくても日本語があつかえるだろうと思っていたのですが・・・・。


上記ページを参考にしてデフォルトの文字コードをutf-8したにも関わらず
スクリプトはマジックコメントを記入しなければ
日本語が表示されないのでしょうか?

pythonのversionは2.7.2です。

A 回答 (2件)

sys.setdefaultencodingは、str文字列とunicode文字列を混ぜたコードを


書いたときに使われる設定なので、
ソースコードの読み取りや日本語の出力にはまったく関係ないです。
http://wiki.python.org/moin/DefaultEncoding
こいつは古いPythonコードを動かす時に使う設定なので、
通常は設定する必要ありません。

マジックコメントは、ソースコードの読み取り時に使う設定なので、
こいつも日本語の出力には関係ないです。
http://www.python.org/dev/peps/pep-0263/
リテラルやコメントにASCII以外の文字を使う場合は
必ずつけてください。

それから、No.1の回答への補足ですが、
標準入出力時に使うエンコーディングは
OSの設定(LC_CTYPEとか)から読み取ります。
http://drj11.wordpress.com/2007/05/14/python-how …
sys.setdefaultencodingは関係ないです。
    • good
    • 0

sys.setdefaultencofingは、入出力のデフォルトを決めるもので、スクリプト自体のコードを決めるものではありません。

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!