| From: | cu |
Date: | August 18th, 2006 - 11:27 am |
---|
| | | (Link) |
|
operējot ar parastajiem stringiem, kuros iekšā utf8 saturs, katrs ķeburs aizņēma 2 vai vairāk baitus. Un, ar rokām operējot ar stringu, varēja katram atsevišķajam baitam tikt klāt.
unicode stringos katrs ķeburs tiešām mums *izskatās* kā viens simbols. Piem, "ā" - u'\u0101' ir viens unicode stringa simbols, kaut utf8 kodējumā tie būtu divi.
Nu lūk, rādās, ka ar \x... escape sekvencēm un latviešu burtiem ir problēmas -
Unicode literals can also use the same escape sequences as 8-bit strings, including \x, but \x only takes two hex digits so it can't express an arbitrary code point. Octal escapes can go up to U+01ff, which is octal 777.
Sanāk, ka pieraksts u'\xc4\x93' apzīmē divus kaut kādus unicode simbolus nevis vienu - "ā", un tāpēc arī "print u'\xc4\x93'" izdod kaut kādu ķeburu ne "ā".
Nu un tālāk skaidrs - tu dabū to unikodes stringu tajā \x... pierakstā, un iemāni pitonam kā parastu ne-unikodes stringu, kurā \xc4\x93 ir divi simboli, un no kura var ieenkodēt kā vajag.
Laikam.
| From: | cu |
Date: | August 18th, 2006 - 11:43 am |
---|
| | | (Link) |
|
droši vien tas php sūta utf8. Nu tad viņu varētu ņemt pretī kā parastu ascii un tad taisīt decode('utf-8'), ja vajadzīgs utf8 strings.
Skatījos, ja lieto xmlrpclib Server klasi, tad tai var norādīt encoding - nu, var pamēģināt ascii vai utf-8, redz, kas notiek.