SORU
26 Mayıs 2009, Salı


Unicode karakterleri kodlamak URL için doğru yol nedir?

Standart olmayan %uxxxx düzeni biliyorum ama bu düzeni W3C tarafından kabul edilmediği için akıllıca bir seçim gibi görünmüyor.

Bazı ilginç örnekler:

Kalp karakteri. Benim tarayıcı içine bunu yazın:

http://www.google.com/search?q=♥

Sonra kopyalayıp, bu URL görüyorum

http://www.google.com/search?q=♥

Firefox ya da Safari) gibi yapar bu işi.

urllib.quote_plus(x.encode("latin-1"))
'♥'

sense, üç nokta karakteri gibi Latin-1, kodlanmış olmayacak şeyler dışında yapar.

URL yazın

http://www.google.com/search?q=…

benim tarayıcı içine kopyalayın ve yapıştırın

http://www.google.com/search?q=…

geri. İşin sonucu gibi görünüyor

urllib.quote_plus(x.encode("utf-8"))

beri mantıklı. Latin-1 ile kodlanmış olamaz yapar.

Ama sonra onun değil tarayıcı olup olmadığını bilir bana nasıl UTF-8 veya Latin-1 ile çözmeye temizleyin.

Bu belirsiz görünüyor sonra:

In [67]: u"…".encode('utf-8').decode('latin-1')
Out[67]: u'\xc3\xa2\xc2\x80\xc2\xa6'

tarayıcı UTF-8 veya Latin-1 ile deşifre edilip rakamlar nasıl bilmiyorum çok çalışır.

Halletmem gereken özel karakterler yapmak için doğru şey nedir?

CEVAP
27 Mayıs 2009, ÇARŞAMBA


Her zaman UTF-8 kodlamak isterim. Wikipedia page on percent encoding:

Genel URI sözdizimi görev yeni URI şemaları sağlamak için temsili karakter veri URI gerekir, etkisi, temsil karakter ayrılmamış set vermeden çeviri ve gereken dönüştürmek tüm diğer karakterler için bayt göre UTF-8 ve sonra yüzde kodlamak bu değerler. Bu gereksinim, RFC 3986 yayınlanması ile Ocak 2005'te tanıtıldı. URI şemaları bu tarihten önce tanıttı etkilenmez.

Göründüğü gibi, çünkü başka kabul yollar yapıyor URL kodlama geçmişte, tarayıcılar girişimi çeşitli yöntemlerle çözme URİ, ama eğer sen yapmak kodlamasını kullanmalısın, UTF-8.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Chriselle Lim

    Chriselle Li

    26 Ocak 2008
  • EmbarkToHeaven

    EmbarkToHeav

    3 EYLÜL 2007
  • Jeremy Stark

    Jeremy Stark

    23 Mayıs 2010