Results 1 to 3 of 3

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    åíòóñèàçèðàí õàðäóåð System.gc()'s Avatar
    Join Date: Apr:2007
    Location: back in time
    Posts: 1,075

    Python è encoding

    Òèÿ äíè ïîêðàé ðàçíè òåìè âúâ ôîðóìà ðåøèõ äà ñå çàèãðàÿ ñ Python êàòî öåëòà áåøå íåùî ñðàâíèòåëíî ïðîñòî: äà ñè íàïèøà ïðîãðàì÷å,
    êîåòî ïðàâè êàòàëîã íà íàëè÷íàòà ìè ìóçèêà ïî çàäàäåí root folder è ãî ðàçïèñâà âúâ ôàéë.

    Çàïî÷íàõ ñ python-2.7.1-x64 (ïîñëåäíèÿò íàëè÷åí Python 2.x) è âñè÷êî áåøå íàðåä, íî ñå îêàçà, ÷å íå âñè÷êè èìåíà íà àëáóìè è
    ïåñíè ñà íàïèñàíè íà àíãëèéñêè (ñúäúðæàò íÿêîè çàáàâíè ñèìâîëè êàòî å, á, ü - èíà÷å êàçàíî ISO-8859 ñèìâîëè).
    Êîåòî äîâåäå êàòî ðåçóëòàò, ÷å python íå æåëàå äà îáõîæäà ïîäîáíè ïàïêè
    (os.path.isfile(x) - False, os.path.isdir(x) - False; os.walk(x) å ñúùàòà ðàáîòà, ïàê ïîëçâà os.listdir(), êàêòî è àç).

    Òîãàâà ðåøèõ äà îïèòàì ñ python-3.1.3-x64, çàùîòî ïîääúðæà Unicode out of the box.
    Å, äà, ïî÷òè. Òúé êàòî Locale-úò íà OS-òî å Áúëãàðèÿ, python-3.1.3 ñè
    çàðåæäà ïî ïîäðàçáèðàíå òàáëè÷êàòà îò ${python}/Lib/encodings/cp1251.py, êúäåòî ãîðåñïîìåíàòèòå
    ñèìâîëè ëèïñâàò. Â ðåçóëòàò ãúðìÿ ñ:

    Code:
    UnicodeEncodeError: 'charmap' codec can't encode character '\xe5' in position 60: character maps to <undefined>
     èíòåðíåÄà íå ñà ìíîãî ñëîâîîõîòëèâè ïî âúïðîñà, íÿêîé äàëè èìà èäåÿ êàê ñå ïðåñêà÷à òàçè äóïêà?

    P.S. Çà ïðîòîêîëà - îïèòàõ è 32bit âåðñèÿòà íà python-3.1.3 è ãúðìè ïî èäåíòè÷åí íà÷èí.
    Ñ Java íåùàòà ñòàíàõà êîðåêòíî îò ïúðâèÿ ïúò, íî êîäúò å ïî-äúðâåí
    UD3R|Q9550+1283|4x2 G.Skill@1066|MX500+1002FAEX+640AAKS+ST31 60|RX580-8GB|1841BLT|SS-760XP|Define7|z24i|Edifier S350DB
    geniusloci: ÀÌÄ ñå êóïóâà à) àêî ñè áåäåí; á) àêî ñà òå èçëúãàëè; â) àêî ñè áîëåí ôåí? nope|r.i.p.

  2. #2
    Registered User JACK's Avatar
    Join Date: Mar:2004
    Location: Êúðíàëîâî
    Posts: 651
    Ïðîáâàé Jython || IronPython

  3. #3
    Ïðèìèòèâ Pesho®'s Avatar
    Join Date: Nov:2001
    Location: Sofia
    Posts: 5,169
    Quote Originally Posted by System.gc() View Post
    Òîãàâà ðåøèõ äà îïèòàì ñ python-3.1.3-x64, çàùîòî ïîääúðæà Unicode out of the box.
    Òîâà èçêàçâàíå å ïîäâåæäàùî. Python 2.x ñúùî ïîääúðæà ÷óäåñíî Unicode out of the box. Ïðîñòî òàì òèïúò str å åäíîáàéòîâ, à ïîâå÷åòî õîðà ïîëçâàò íåãî ïî èíåðöèÿ, âìåñòî unicode. Ïðàâèëíî íàïèñàíèòå ïðîãðàìè ñè ðàáîòÿò, ñáúðêàíèòå ãúðìÿò. Òðÿáâà äà âíèìàâàø êàòî ÷åòåø íåùî â êàêúâ åíêîäèíã å, è â êàêúâ òè èñêàø äà ãî ñúõðàíèø. Êîíâåðñèÿ ìåæäó unicode è str ìîæåø äà ïðàâèø ñ ìåòîäèòå encode() è decode(), èëè ïúê ñ êîíñòðóêòîðèòå íà unicode() è str(). Ïðèìåðè:

    u'Àëàáàëà'.encode('utf8')
    '\xd0\x90\xd0\xbb\xd0\xb0\xd0\xb1\xd0\xb 0\xd0\xbb\xd0\xb0'.decode('utf8')

    Quote Originally Posted by System.gc() View Post
    Â ðåçóëòàò ãúðìÿ ñ:

    Code:
    UnicodeEncodeError: 'charmap' codec can't encode character '\xe5'  in position 60: character maps to <undefined>
     èíòåðíåÄà íå ñà ìíîãî ñëîâîîõîòëèâè ïî âúïðîñà, íÿêîé äàëè èìà èäåÿ êàê ñå ïðåñêà÷à òàçè äóïêà?

    P.S. Çà ïðîòîêîëà - îïèòàõ è 32bit âåðñèÿòà íà python-3.1.3 è ãúðìè ïî èäåíòè÷åí íà÷èí.
    Ñ Java íåùàòà ñòàíàõà êîðåêòíî îò ïúðâèÿ ïúò, íî êîäúò å ïî-äúðâåí
    Íàêðàòêî - áúãàâà òè å ïðîãðàìàòà, îïðàâè ñè ÿ Èçïîëçâàé ïîäñêàçêèòå êîèòî íàïèñàõ ïî-ãîðå.
    Êîéòî ìè öúêíå ÷åðâåí ïàëåö, äà ìó îìåêíå ÷óðêàòà!

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Copyright © 1999-2011 Õàðäóåð ÁÃ. Âúçìîæíî å ñúäúðæàíèåòî íà òàçè ñòðàíèöà äà å îáåêò íà àâòîðñêè ïðàâà.
iskamPC.com | mobility.BG | Bloody's Techblog | Êðèïòîâàëóòè è ìàéíèíã | 3D Vision Blog | Ìàãàçèí çà åëåêòðîííè öèãàðè