'daki bölünmeyen alanı değiştir Python'da, Unicode-kodlanmış bir metin var. Bu metin, 'x' değerine dönüştürmek istediğim kesilmeyen boşluklar içeriyor. Kesilmeyen boşluklar chr(160)
'a eşittir. Eclipse aracılığıyla Localhost kullanarak Django olarak çalıştırdığımda harika çalışan aşağıdaki kod var. Hiçbir hata ve herhangi bir kırılmayan alan dönüştürülür. karşılaştırmak çalışıyor çünküPython: Unicode
'ascii' codec can't decode byte 0xa0 in position 0: ordinal not in range(128)
sanırım bu hata anlamda yapar: ben o (yerine Eclipse runserver aracılığıyla Python komut satırı, Django) başka bir şekilde çalıştırdığınızda
my_text = u"hello"
my_new_text = my_text.replace(chr(160), "x")
Ancak bir hata alıyorum Unicode olmayan bir şeye Unicode (my_text). Sorularım:
chr(160)
Unicode değilse, nedir?- Eclipse'den çalıştırdığımda bu nasıl çalışıyor? Bunu anlamak, kodumun diğer bölümlerini değiştirmem gerekip gerekmediğimi belirlememe yardımcı olur. Kodumu Eclipse'den test ediyorum.
- (en önemlisi) Bozulmayan alanları kaldırma konusundaki ilk sorunumu nasıl çözebilirim?
my_text
kesinlikle Unicode olacak. Python 2'de
Mükemmel, teşekkürler. unichr(), Eclipse aracılığıyla değil Eclipse aracılığıyla çalışır. Eclipse'den çalışırken chr() ve unichr() 'nin aynı sonucu vermesi garip. – user984003
Eclipse yapılandırmanız, ASCII yerine varsayılan kodlamayı UTF8 olarak değiştirebilir. Bu, açık uyumluluk nedenleri için ne yapılması gerektiği için önerilmez. Bu yapılandırmada yazılmış kod başka bir yerde çalışmayabilir. –
Aslında ASCII (0x00 - 0x7F) UTF-8 ile uyumludur, çünkü UTF-8'in ilk 128 kod noktası ASCII ile aynıdır. Ancak, 0xa0 kesinlikle ASCII değil, dolayısıyla 'unichr' yerine 'chr' kullanırken hata ... – dda