2012-01-12 12 views
3

Web開発を始めたばかりなので、私はApache全体についてかなり新しくなっています。十分な情報を提供していない場合は、詳細を尋ねてください。Mac OS X Lion上のApacheについて

私は、Lionに同梱されているout-of-the-boxのApacheを使用していますが、たまにはUTF-8文字を出力する必要があるPythonアプリケーションを作成しました。

しかし、どのような方法を使用しても、試してみても、UTF-8文字を印刷しようとすると、500 Internal Server Errorが捨てられ、何も残されません。

私が試したいろいろなこと:(。コードの上部に# -*- coding: utf-8 -*-付)

  • 印刷Pythonコードから直接文字アウト
  • .decode('utf-8')機能を使用して文字を印刷。
  • 印刷アウトプレースシンボルとプレースホルダに代わる
  • 印刷アウトプレースホルダ、およびその後のjQueryをプリントアウト(3つの別々の文字をプリントアウトしてその結果を)(そして、ページが内部サーバーエラーをスローします)それを置き換えるJqueryスクリプトへのリンクを印刷します。 (Firebugによれば、スクリプトにアクセスしようとすると、Firefoxが500のサーバエラーになるという。)

私は他のことは考えていない。 これが私がここで尋ねた理由です。

提案がありますか?

おかげ 〜DragonXDoom

EDIT:以下ウィルの提案を試した後、私は今、次のエラーを取得します。

Content-type: text/html; charset=UTF-8 

かに行くと同等<meta>タグ(と:私のコメントについては詳しく説明し

<type 'exceptions.UnicodeDecodeError'>: 'ascii' codec can't decode byte 0xe2 in position 0: ordinal not in range(128) 
    args = ('ascii', '\xe2\x80\xa2', 0, 1, 'ordinal not in range(128)') 
    encoding = 'ascii' 
    end = 1 
    message = '' 
    object = '\xe2\x80\xa2' 
    reason = 'ordinal not in range(128)' 
    start = 0 
+1

Web言語としてPythonをよく知らない人がいますが、要求に正しいUTF-8コンテンツタイプ/文字セットHTTPヘッダーまたは同等のHTMLメタタグを送信すると、2番目の方法が正しく動作する可能性があります。ブラウザはおそらくISO-8859-1を使ってそれをデコードしようとしています。 –

+0

私が言ったように、私はこれには全く新しいので、あなたはそのようなメタタグやヘッダの例を挙げることができますか? – DragonXDoom

+0

これはApacheやMac OS Xとは実際には関係ありません:) PythonとUnicodeだけで、代わりに2つのタグを使用することをお勧めします。 – Arafangion

答えて

1

一般的な問題を理解するためには、http://www.joelonsoftware.com/articles/Unicode.htmlを読む必要があります。

あなたは、あなたが正しくPythonでUnicodeを処理する方法を学ばなければならない、と理解したら、私は長いものの、以下のウェブサイトが有用であるべきだと思う:http://boodebr.org/main/python/all-about-python-and-unicode

何をするにしても、出し惜しみしたりスキップしないでくださいユニコードを理解することになります。そうしないと微妙な問題が引き続き起こります。

はまた、あなたが.decode(「UTF-8」)を使用しようとしてきたと述べている - あなたはエンコードそれにしたい - Pythonは/すでに/ Unicodeとしてデータを理解していれば、これは動作しません!

0

、あなたはページがHTTPヘッダのどちらかにして送信されているエンコーディングのブラウザを伝えることができますあなたのHTML内<head>セクション):

<meta http-equiv="Content-type" value="text/html; charset=UTF-8" /> 

それはが正しくUTを解釈すべきである。この方法それが受け取るF-8文字。

# -*- coding: utf-8 -*-との最初の試みとしては、ApacheがUTF-8ソースファイルの解釈方法を知らないためです。

また、私はApacheでPythonを実行することに慣れていませんが、これはいくつかの助けになるでしょう!

+0

私はこれを試しました。 しかし、今私は主な質問にあるエラーを取得します。 – DragonXDoom

関連する問題