2012-03-09 62 views
4

因此,我一直在閱讀關於Unicoding今晚的一些內容,因爲我正在考慮切換到Jinja2,這需要在應用程序中隨處使用Unicode。我覺得我對如何處理是個好主意,但我想聽到的話,這是合理的之前,我開始編寫我的應用程序:Python 2.7,Appengine數據存儲和Unicode

  1. 與外部的文本輸入處理(通過HTML表單)

    a)確保所有html頁面都是utf-8編碼的。
    b)一旦用戶按下提交,一旦python後端收到數據,確保數據轉換爲Unicode ... decode(self.request.get('stuff'),utf-8)
    c)Stay在unicode中,將輸出傳送給Jinja2,它總是使用utf-8的默認編碼。從AppEngine上數據存儲

  2. 信息

    ,因爲谷歌商店都爲Unicode,從數據存儲進來的所有數據已經​​是Unicode和我不擔心任何事情(耶!)

    在應用程序內
  3. 字符串

    確保所有 「」 開始與u(即你好「世界」),這將迫使一切都在unicode。

那麼上面是我的策略保持一致的一切。還有什麼我需要考慮的?

謝謝!

+0

時纔可用。爲確保從html頁面獲取unicode中的所有內容,請使用html charset utf-8。在每個python代碼中,確保你已經在頂部聲明瞭utf-8。如果你這樣做,你很好。如果你使用JavaScript,它也使用unicode所以耶! – specialscope 2012-03-09 12:47:33

+0

您也可以使用'from __future__ import unicode_strings',以便引用的字符串是不帶'u'前綴的Unicode。 – Philipp 2012-03-12 22:53:17

+0

嘿菲利普,我試圖unicode_strings..and它給了我一個錯誤。從__future__導入unicode_literals的作品。一樣? – iceanfire 2012-03-14 10:11:40

回答

1

按照規定你不應該,如果你使用的web應用或webapp2的需要.decode(self.request.get(「東西」),UTF-8。該框架尊重數據的輸入類型。

一切否則看起來正確。

同時,我認爲

from __future__ import unicode_strings 

應該

from __future__ import unicode_literals 

,並且僅在2.6和2.7中可用。因此,在App Engine中,只有在使用2.7