Neden python string unicode ilan?
Hala python öğreniyorum ve bir şüphe var:
Python 2.6.x ben genellikle dosya başlığında bu kodlama (PEP 0263) gibi bildirin
# -*- coding: utf-8 -*-
Bundan sonra, benim dizeleri her zamanki gibi yazılır:
a = "A normal string without declared Unicode"
Ama python proje kodu her gördüğümde, kodlama Başlığı bildirilmedi. Bunun yerine, bu gibi: her dizesi ilan etti
a = u"A string with declared Unicode"
Ne fark eder? Bunun amacı nedir? Python 2.6 biliyorum.x ASCII kodlama ayarlar, varsayılan olarak, ama başlık beyanları ile geçersiz olabilir, başına dize Bildirgesi anlamı nedir?
Ek:Karışık olduğum gibi dize kodlama ile kodlama dosya. Açıklama için teşekkür ederiz :)
CEVAP
O başkaları belirttiğimiz gibi iki farklı şeylerdir.
Ne zaman seni # -*- coding: utf-8 -*- belirtinPython kaydettiğiniz utf-8 olduğunu söylüyorsun. Python 2 için varsayılan ASCII (Python 3 utf-8). Bu sadece yorumlayıcı dosya karakterleri okur nasıl etkiler.
Genel olarak, muhtemelen bir dosya içine yüksek unicode karakter kodlaması ne olursa olsun gömmek için iyi bir fikir değil; ya da kodlama, unicode dize kaçar, kullanabilirsiniz.
Ön u ile bir dize bildirmekgibi u'This is a string' Unicode dize, bayt Python derleyici söyler. Bu çoğunlukla şeffaf yorumlayıcı tarafından ele alınır; en bariz fark, şimdi dize unicode karakterleri (u'\u2665' şimdi yasal) gömebilirsiniz. from __future__ import unicode_literals varsayılan yapmak için kullanabilirsiniz.
Bu sadece 2; varsayılan Unicode Python Python 3 için geçerlidir ve ön b (bayt sırası ilan için b'These are bytes' gibi) belirtmeniz gerekir.

Python katılın, neden dize.liste yerin...
Nasıl Unicode olanları yerine string N...
Neden varsayılan kodlama ASCII olduğun...
Neden yok't arama Python string b...
Neden String sınıfı son ilan Java mı?...