Przeksztalcenie znaku na jego kod
Sulsa - 24-12-2006 00:53
Przeksztalcenie znaku na jego kod
jak w pythonie przeksztalcic znak np "a" na dany mu kod zgodny z aktualnym kodowaniem systemowym (np utf8) ?
-- Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
William - 24-12-2006 00:53
> jak w pythonie przeksztalcic znak np "a" na dany mu kod zgodny z aktualnym > kodowaniem systemowym (np utf8) ?
bytes = [ ord( c ) for c in u'a'.encode( 'utf8' ) ]
Marek Baczynski - 24-12-2006 00:53
Sulsa wrote:
> jak w pythonie przeksztalcic znak np "a" na dany mu kod zgodny z aktualnym > kodowaniem systemowym (np utf8) ?
Będzie problem.
>>> ord('a') 97 >>> ord('±') Traceback (most recent call last): File "<stdin>", line 1, in ? TypeError: ord() expected a character, but string of length 2 found
Co¶ na kształt możesz uzyskać tak:
>>> from array import array >>> array('c','±') array('c', '\xc4\x85')
-- Marek Baczyński evolve or face extinction
Marek Baczynski - 24-12-2006 00:53
Marek Baczynski wrote:
> Co¶ na kształt możesz uzyskać tak: > >>>> from array import array >>>> array('c','±') > array('c', '\xc4\x85')
Gupi ja żem nie spojrzał wpierw na to: >>> '±' '\xc4\x85'
Ranna pora :)
-- Marek Baczyński evolve or face extinction
Sulsa - 24-12-2006 00:53
On Sun, 30 Jul 2006 06:43:18 +0200 "William" <nie@ma.mnie.pl> wrote:
> > jak w pythonie przeksztalcic znak np "a" na dany mu kod zgodny z > > aktualnym kodowaniem systemowym (np utf8) ? > > bytes = [ ord( c ) for c in u'a'.encode( 'utf8' ) ] > >
zrobilem tak dla literki ± i dostalem cos takiego:
~ $ python a.py sys:1: DeprecationWarning: Non-ASCII character '\xc4' in file a.py on line 4, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details [195, 132, 194, 133] ~ $
wiec chyba nie jest dobrze
Rob Wolfe - 24-12-2006 00:53
Sulsa <sulsa@gazeta.pl> writes:
> On Sun, 30 Jul 2006 06:43:18 +0200 > "William" <nie@ma.mnie.pl> wrote: > >> > jak w pythonie przeksztalcic znak np "a" na dany mu kod zgodny z >> > aktualnym kodowaniem systemowym (np utf8) ? >> >> bytes = [ ord( c ) for c in u'a'.encode( 'utf8' ) ] >> >> > > zrobilem tak dla literki ± i dostalem cos takiego: > > ~ $ python a.py > sys:1: DeprecationWarning: Non-ASCII character '\xc4' in file a.py on > line 4, but no encoding declared; see > http://www.python.org/peps/pep-0263.html for details [195, 132, 194, > 133] ~ $ > > wiec chyba nie jest dobrze
Oj nie jest, ale jak zajrzysz na stronkę, której adres python Ci podał, to wszystko stanie się jasne.
-- pozdrawiam Rob
Sulsa - 24-12-2006 00:53
On Sun, 30 Jul 2006 20:10:44 +0200 Rob Wolfe <rwNOSPAM@NOSPAMsmsnet.pl> wrote:
> Oj nie jest, ale jak zajrzysz na stronkę, której adres python Ci > podał, to wszystko stanie się jasne.
zaraz tam spojrze, sprawdzilem jeszcze dla kodowania iso8859-2 i rez nie jest dobrze bo zwrocilo mi dwa bajty, wiec tez za duzo.
Sulsa - 24-12-2006 00:53
On Sun, 30 Jul 2006 20:10:44 +0200 Rob Wolfe <rwNOSPAM@NOSPAMsmsnet.pl> wrote:
> Oj nie jest, ale jak zajrzysz na stronkę, której adres python Ci > podał, to wszystko stanie się jasne.
Zajrzalem na stronke i dalej jest zle, kodowanie systemowe to iso8859-2 program wyglada tak:
#!/usr/bin/python # -*- coding: iso8859-2 -*-
bytes= [ ord( c ) for c in u'±'.encode( 'iso8859-2' ) ]
print bytes
wiec kodowanie ustawilem no i niestety program wyswietla: ~ $ python a.py [196, 133]
wiec zwraca dwa bajty a przeciez powinien byc jeden. Co jest grane?
Sulsa - 24-12-2006 00:53
On Sun, 30 Jul 2006 11:19:33 +0200 Marek Baczynski <imbaczek@gmail--NOSPAM.com> wrote:
> Marek Baczynski wrote: > > > Co¶ na kształt możesz uzyskać tak: > > > >>>> from array import array > >>>> array('c','±') > > array('c', '\xc4\x85') > > Gupi ja żem nie spojrzał wpierw na to: > >>> '±' > '\xc4\x85' > > Ranna pora :) >
u mnie wynik taki sam, dwa bajty, a przeciez w kodowaniu iso8859-2 czyli takim jakie mam w systemie powinen byc tylko jeden!
Rob Wolfe - 24-12-2006 00:53
Sulsa <sulsa@gazeta.pl> writes:
> On Sun, 30 Jul 2006 20:10:44 +0200 > Rob Wolfe <rwNOSPAM@NOSPAMsmsnet.pl> wrote: > > >> Oj nie jest, ale jak zajrzysz na stronkę, której adres python Ci >> podał, to wszystko stanie się jasne. > > Zajrzalem na stronke i dalej jest zle, kodowanie systemowe to iso8859-2 > program wyglada tak: > > #!/usr/bin/python > # -*- coding: iso8859-2 -*- > > bytes= [ ord( c ) for c in u'±'.encode( 'iso8859-2' ) ] > > print bytes > > wiec kodowanie ustawilem no i niestety program wyswietla: > ~ $ python a.py > [196, 133] > > wiec zwraca dwa bajty a przeciez powinien byc jeden. Co jest grane? >
Ustawienie kodowania w nagłówku pliku to jedno, a ustawienie kodowania w edytorze to drugie. Podejrzewam, że Twój edytor ma ustawione kodowanie na utf-8.
-- pozdrawiam Rob
Sulsa - 24-12-2006 00:53
On Sun, 30 Jul 2006 20:19:38 +0200 Rob Wolfe <rwNOSPAM@NOSPAMsmsnet.pl> wrote:
> > Ustawienie kodowania w nagłówku pliku to jedno, a ustawienie > kodowania w edytorze to drugie. Podejrzewam, że Twój edytor ma > ustawione kodowanie na utf-8.
uzywam wima wiec wydaje mi sie ze ma takie samo kodowanie jak konsola czyli iso. jak zrobie '±'.encoding("utf8") to wynik jest identyczny, a rowniez powinen byc to jeden bajt, wiec cos jest ewindentnie nie tak.
Sulsa - 24-12-2006 00:53
On Sun, 30 Jul 2006 20:25:27 +0200 Sulsa <sulsa@gazeta.pl> wrote:
> uzywam wima wiec wydaje mi sie ze ma takie samo kodowanie jak konsola > czyli iso. jak zrobie '±'.encoding("utf8") to wynik jest identyczny, a > rowniez powinen byc to jeden bajt, wiec cos jest ewindentnie nie tak.
Jednak problem jest mega dziwny, przeswietlilem pliki napisane w vimie hex edytorem i okazuje sie ze, znaki oprocz polskich kodowane sa na jednym bajcie a pozostale na dwoch. Troche ten vim jest #*&!@$
Rob Wolfe - 24-12-2006 00:53
Sulsa <sulsa@gazeta.pl> writes:
> On Sun, 30 Jul 2006 20:19:38 +0200 > Rob Wolfe <rwNOSPAM@NOSPAMsmsnet.pl> wrote: > >> >> Ustawienie kodowania w nagłówku pliku to jedno, a ustawienie >> kodowania w edytorze to drugie. Podejrzewam, że Twój edytor ma >> ustawione kodowanie na utf-8. > > uzywam wima wiec wydaje mi sie ze ma takie samo kodowanie jak konsola
sokoro vima, to co pokazuje ":set encoding"
> czyli iso. jak zrobie '±'.encoding("utf8") to wynik jest identyczny, a > rowniez powinen byc to jeden bajt, wiec cos jest ewindentnie nie tak.
u mnie to działa tak:
<code> #!/usr/bin/env python # -*- coding: iso-8859-2 -*-
bytes = [hex(ord(c)) for c in u"±".encode("iso-8859-2")] print bytes </code>
python font.py ['0xb1']
-- pozdrawiam Rob
Sulsa - 24-12-2006 00:53
On Sun, 30 Jul 2006 20:38:29 +0200 Rob Wolfe <rwNOSPAM@NOSPAMsmsnet.pl> wrote:
> > sokoro vima, to co pokazuje ":set encoding" >
teraz pokazuje iso8859-2 , nie moge zreprodukowac poprzedniego blendu
> u mnie to działa tak: > > <code> > #!/usr/bin/env python > # -*- coding: iso-8859-2 -*- > > bytes = [hex(ord(c)) for c in u"±".encode("iso-8859-2")] > print bytes > </code> > > python font.py > ['0xb1'] >
U mnie teraz dziala identycznie. Czasami zaskakuje mnie to Gentoo,cos nie dziala przez jakis czas i nagle zaczyna bez przyczyny samo dzialac. poprzednio mialem taki problem z polskimi znakami na konsoli w X-window po pewnym czasie problem znikl. Teraz pewnie daje o sobie przypomniec w postaci takich kwiatkow.
Rob Wolfe - 24-12-2006 00:53
Sulsa <sulsa@gazeta.pl> writes:
> U mnie teraz dziala identycznie. Czasami zaskakuje mnie to Gentoo,cos > nie dziala przez jakis czas i nagle zaczyna bez przyczyny samo dzialac. > poprzednio mialem taki problem z polskimi znakami na konsoli w > X-window po pewnym czasie problem znikl. Teraz pewnie daje o sobie > przypomniec w postaci takich kwiatkow.
No cóż... nie ma to jak stary, dobry Debian. :)
-- pozdrawiam Rob
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
Wstawianie nowego wiersza w przypadku jego braku podczas SELECT w PostgreSQL
corel... jak spłaszczyć obiekt z jego obrysem aby stanowiło jedn± cało¶ć
Cena Photoshopa CS 2 i jego legalnosc w Polsce - Allegro
Uzyskanie pozycji rekordu na bazie jego ID
[mysql]wyszukiwanie fulltext i jego przydatnosc
Roznica w kompresji jpeg i jego jakosci
[pgsql] Postgres i jego możliwo¶ci
obraz 2D i jego opis
[pl/sql] usuwanie znaku nowej lini ze stringa
[pl/sq] usuwanie 3 znaku od konca w stringu
zanotowane.pldoc.pisz.plpdf.pisz.pldirtyboys.xlx.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogo¶ kochasz, jeste¶ jak stworzyciel ¶wiata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barw±, ¶wiatłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle rado¶ci, że musisz j± rozdawać wokoło, bo się w tobie nie mie¶ci Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwiej±. Safona |
|